SpringBoot 集成 MyBatis-Plus

  1. MyBatic-Plus 简介
  2. SpringBoot 集成MyBatis-Plus
  3. 分页查询

简介

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。官方网址

核心功能: 代码生成器,CURD接口,条件构造器,分页插件,Sequence主键,自定义ID生成器
插件扩展: 热加载,逻辑删除,通用枚举,字段类型处理器,自动填充功能,Sql注入器,攻击SQL阻断解析器,性能分析插件,执行SQL分析打印,乐观锁插件,动态数据源,分布式事务,多租户SQL解析器,动态表名SQL解析器,MybatisX快速开发插件

SpringBoot 集成 MyBatis-Plus

  1. 创建一个Web项目,添加依赖
    https://start.spring.io/,pom 文件如下:
    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            mysql
            mysql-connector-java
        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.2.0
        
        
        
            org.projectlombok
            lombok
            1.18.10
            provided
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    
  1. 在application.yml 文件中配置mysql
# DataSource Config
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
    username: root
    password: root
  1. 编写实体类,Mapper类
@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
public interface UserMapper extends BaseMapper {
}
  1. 在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:
@SpringBootApplication
@MapperScan("top.lconcise.mapper")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

目录结构如下:


image.png
  1. 测试:
@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void contextLoads() {
        System.out.println(("----- selectAll method test ------"));
        List userList = userMapper.selectList(null);
        Assert.assertEquals(5, userList.size());
        userList.forEach(System.out::println);
    }
}

控制台输出:

User(id=1, name=Jone, age=18, [email protected])
User(id=2, name=Jack, age=20, [email protected])
User(id=3, name=Tom, age=28, [email protected])
User(id=4, name=Sandy, age=21, [email protected])
User(id=5, name=Billie, age=24, [email protected])

通过以上几个简单的步骤,我们就实现了 User 表的 CRUD 功能,甚至连 XML 文件都不用编写!

分页查询

  1. 配置
@EnableTransactionManagement
@Configuration
@MapperScan("com.baomidou.cloud.service.*.mapper*")
public class MybatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
        // paginationInterceptor.setOverflow(false);
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        // paginationInterceptor.setLimit(500);
        return paginationInterceptor;
    }
}
  1. 编码
public interface UserMapper extends BaseMapper {

    IPage selectPageVo(Page page, @Param("name") String name);
}

编写xml文件





    


  1. 对于IDEA系列编辑器,XML 文件是不能放在 java 文件夹中的,IDEA 默认不会编译源码文件夹中的 XML 文件,可以参照以下方式解决:
  • 指定 POM 文件的 resource
    
        
            
                
                src/main/java
                
                    **/mapper/*.xml
                
            
            
            
                src/main/resources
            
        
      
  1. 测试:
    @Test
    public void contextLoads() {
        IPage userIPage = userMapper.selectPageVo(new Page(1, 5), "J");
        userIPage.getRecords().forEach(System.out::println);
    }

控制台输出:

User(id=1, name=Jone, age=null, email=null)
User(id=2, name=Jack, age=null, email=null)

参考官方文档:https://mybatis.plus/guide/faq.html#%E8%87%AA%E5%AE%9A%E4%B9%89-sql-%E6%97%A0%E6%B3%95%E6%89%A7%E8%A1%8C

源码地址:https://github.com/lbshold/springboot/tree/master/SpringBoot-MyBatisPlus

你可能感兴趣的:(SpringBoot 集成 MyBatis-Plus)