MyBatis-plus快速入门有哪些步骤和技巧?

摘要:MyBatis-plus简述 MyBatis-plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。 内置代码生成器、内置分页插件、内置性能分析插件、内置全局拦截插件等。。。 快速应用
MyBatis-plus简述 MyBatis-plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。 内置代码生成器、内置分页插件、内置性能分析插件、内置全局拦截插件等。。。 快速应用 新建一个空的SpringBoot项目 引入依赖,MyBatis-plus依赖已经包含了MyBatis框架,所以不再引入MyBatis依赖: 这个依赖适配springboot3.x 版本 <!-- mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.30</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.20</version> </dependency> <!--mybatis-plus依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.15</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.42</version> </dependency> <!-- web环境依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 编写springboot配置文件 spring: datasource: username: root password: root url: jdbc:mysql://localhost:3306/spring6?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&useUnicode=true driver-class-name: com.mysql.cj.jdbc.Driver 编写Mapper接口 // 继承BaseMapper,BaseMapper内置了丰富的接口方法,这里就不用编写常用的方法了 // 而且这里方法对应的映射文件也不用写了 @Mapper public interface UserMapper extends BaseMapper<User> { } 编写controller、service、impl、domain 代码: @RestController public class UserController { @Autowired private UserService userService; @RequestMapping("/selectAll") public List<User> getUsers() { return userService.selectList(); } } @Data @NoArgsConstructor @AllArgsConstructor public class User { private Long id; private String name; private Integer age; private String email; } public interface UserService { List<User> selectList(); } @Service("userService") public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> selectList() { return userMapper.selectList(null); } } 此时打开对应的url([localhost:8080/selectAll](http://localhost:8080/selectAll)即可进行测试。 开启日志 在application.yml文件中配置如下: mybatis-plus: global-config: # 去掉mybatis-plus在控制台输出的图标 banner: false configuration: # 开启日志 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 通用Mapper接口介绍 基础的增删改查 @Autowired private UserMapper userMapper; @Test void contextLoads() { User user = new User(); user.setAge(13); user.setId(1L); user.setName("test"); // 简单新增方法 userMapper.insert(user); // 简单根据id删除 userMapper.deleteById(2L); user.setAge(22); // 简单更新 userMapper.updateById(user); // 简单查询 User user1 = userMapper.selectById(2L); } 通用Service接口介绍 MyBatis-plus提供了IService接口和对应的实现类ServiceImpl。该实现类已经实现了一些对应的service方法,我们可以直接使用它提供的额方法来实现功能,不用亲自编写实现方法。 具体实现关系如下: 修改后的UserService接口如下: public interface UserService extends IService<User> { List<User> selectList(); } 修改后的UserServiceImpl方法如下: @Service("userService") public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> selectList() { return userMapper.selectList(null); } } 此时就可以用Service来插入数据等操作: void testServiceCRUD(){ User user = new User(); user.setAge(13); user.setId(1L); user.setName("test"); // 新增 userService.save(user); // 删除 userService.removeById(2L); // 更新 user.setId(1L); user.setName("test2"); userService.updateById(user); // 查询 List<User> users = userService.selectList(); } 自定义Mapper接口方法 自定义的接口方法和实现与mybatis的实现方式一样。 Mapper接口: @Mapper public interface UserMapper extends BaseMapper<User> { User selectByName(String name); } UserMapper.xml文件: <mapper namespace="com.ali.mapper.UserMapper"> <select id="selectByName" resultType="com.ali.domain.User"> SELECT * FROM user where name = #{name} </select> </mapper> 注意:这里的mapper接口和UserMapper.xml文件必须处于同一个目录下。