SpringBoot+Mybatis实现简单的增删改查

    技术2022-07-11  92

    SpringBoot+Mybatis实现简单的增删改查

    首先是在Springboot项目中整合Mybatis

    先导入依赖
    <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency>

    这里我用的是MP,因为只是实现一些比较简单的数据库操作,所以使用mp可以减少代码量

    接着就是对于mybatis,sql的配置

    模板引擎我使用的是springboot推荐的thymeleaf,配置如下:

    spring: thymeleaf: enabled: true #开启thymeleaf视图解析 encoding: utf-8 #编码 prefix: classpath:/templates/ #前缀 cache: false #是否使用缓存 mode: HTML #严格的HTML语法模式 suffix: .html #后缀名 datasource: name: test url: jdbc:mysql://localhost:3306/dfrz_edusys?useUnicode=true&characterEncoding=utf8 username: root password: 123456 # 使用druid数据源 type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver filters: stat maxActive: 20 initialSize: 1 maxWait: 60000 minIdle: 1 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 20 ## 该配置节点为独立的节点,有很多同学容易将这个配置放在spring的节点下,导致配置无法被识别 mybatis: mapper-locations: classpath:mapping/*.xml #注意:一定要对应mapper映射xml文件的所在路径 type-aliases-package: com.example.login.bean # 注意:对应实体类的路径 #pagehelper分页插件 pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql #mybatis-plus mybatis-plus: mapper-locations: classpath:mapping/*.xml configuration: #开启MyBatis日志 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl cache-enabled: true

    完成配置后就是对于mapper类的书写,先完成一个对于User信息的操作:

    public interface UserMapper extends BaseMapper<User> { //public User getUserById(Integer id); }

    只要继承 BaseMapper就能够调用封装好的增删改查功能。

    服务层的编写
    public interface IUserService { public void addUser(User user); public User login(User user); public List<User> getUsers(); public void editUser(User user); public void delUser(User user); public User getUser(User user); }

    Impl对于接口的具体实现如下:

    public class UserServiceImpl implements IUserService{ @Autowired UserMapper userMapper; @Override public void addUser(User user) { userMapper.insert(user); } @Override public User login(User user) { System.out.println(user.getUname()+" "+user.getUpass()); if ("wsk".equals(user.getUname()) && "wsk".equals(user.getUpass())){ return user; }else { return null; } } @Override public List<User> getUsers() { List<User> list = userMapper.selectList(null); return list; } @Override public void editUser(User user) { userMapper.updateById(user); } @Override public void delUser(User user) { userMapper.deleteById(user.getId()); } @Override public User getUser(User user) { User user1 = userMapper.selectById(user.getId()); return user1; } }
    接着编写单元测试用例:

    首先是插入功能:

    @Test public void test03() { //添加用户 User user = new User(null, "testman20200701", "0701"); userMapper.insert(user); }

    结果如下 接着是查询功能,根据id(主键)来查询,调用selectById()接口即可实现

    @Test public void test01() { User user = userMapper.selectById(7); System.out.println(user); }

    结果如下 删除功能代码如下:

    @Test public void test05(){ userMapper.deleteById(7); }

    结果如下: 更新代码如下:

    @Test public void test06(){ userMapper.updateById(new User(9,"qwe","qwe")); }

    结果如下 本篇仅对于mybatis-plus的简单增删改查接口进行单员测试,服务层代码还未用到(写完博客才发现,懒得删了),所以在下一篇博客会具体讲到结合前端页面,如何进行完整的增删改查。😃

    Processed: 0.009, SQL: 9