用Idea 2019.3+和Gradle5.2.1+ 构建SpringBoot多项目(十)——mybatis plus

components文件夹下新建module项目mybatis+, 项目结构如下:

模块 子模块 说明
nuts.springboot.boot   工程启动引导项目
nuts-springboot-listener   actuator admin项目
components    
  nuts-springboot-dbpool 数据库连接池组件
  nuts-springboot-log4j2 使用log4j2作为日志组件
  nuts-springboot-logback springboot默认日志组件
  nuts-springboot-mybatis 使用mybatis作为ORM组件
  nuts-springboot-mybatis+ 使用mybatis plus作为ORM组件
     
endpoints   后端api响应接口
  nuts-springboot-clover 模板项目后端
  nuts-springboot-home 统一异常处理、统一返回结构
kernels   工程内核模型
  nuts-springboot-core 核心模型
     
     

mybatis+.gradle文件引入mybatis相关依赖

dependencies {
    implementation('com.baomidou:mybatis-plus-boot-starter:3.2.0') {
        exclude group: 'com.zaxxer', module: 'HikariCP'
    }
    // 数据库连接池
    implementation project(':components:nuts.springboot.dbpool')
}

注意 :没有使用默认HikariCP数据库连接池时,需要排除对应的依赖;否则默认使用HikariCP,并报url没有找到属性值

mybatis plus使用参照单元测试样例:

用Idea 2019.3+和Gradle5.2.1+ 构建SpringBoot多项目(十)——mybatis plus_第1张图片

UserMapper 

@Mapper
@Repository
public interface UserMapper {

    /**
     * 查询所有用户
     *
     * @return 用户列表
     */
    List selectAllUser();

    /**
     * 分页查询所有用户
     *
     * @return 用户列表
     */
    IPage selectPageUser(Page page);

}

 UserRepositoryTest 

@SpringBootTest
public class UserRepositoryTest extends AbstractSpringBootTest {
    private static final Logger logger = LoggerFactory.getLogger(UserRepositoryTest.class);

    @Test
    public void testQueryUser() {
        UserMapper userMapper = webApplicationContext.getBean(UserMapper.class);
        Assert.isInstanceOf(UserMapper.class, userMapper, "UserMapper对象不能为空");
        List userPOList = userMapper.selectAllUser();
        userPOList.forEach(userPO -> {
            logger.info(userPO.toString());
        });
        Assert.isTrue(userPOList.size() > 0, "数据库记录查询异常");
    }

    @Test
    public void testQueryUserPage() {
        UserMapper userMapper = webApplicationContext.getBean(UserMapper.class);
        Assert.isInstanceOf(UserMapper.class, userMapper, "UserMapper对象不能为空");
        Page userPOPage = new Page<>();
        userPOPage.setPages(0).setSize(1);
        IPage userPOIPage = userMapper.selectPageUser(userPOPage);
        userPOIPage.getRecords().forEach(userPO -> {
            logger.info(userPO.toString());
        });
        Assert.isTrue(userPOIPage.getRecords().size() == 1, "数据库记录查询异常");

    }
}

 UserMapper.xml




    
        
        
        
        
        
        
        
        
        
        
    

    

    

注意:Mapper下的接口类与资源文件夹中的xml文件名要求一致,否则提示无法找到对应的xml或定义

这里是对应Mapper接口类的全类名

application-mybatis-dev.yaml

mybatis-plus:
  mapper-locations: classpath*:mappings/**/**.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: org.hazulnut.admin.mapper
  global-config:
    # 数据库相关配置
    db-config:
      #主键类型  AUTO:"数据库ID自增", INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
      id-type: auto
      #字段策略 IGNORED:"忽略判断",NOT_NULL:"非 NULL 判断"),NOT_EMPTY:"非空判断"
      field-strategy: not_empty
      #驼峰下划线转换
      table-underline: true
      #是否开启大写命名,默认不开启
      #capital-mode: true
      #逻辑删除配置
      #logic-delete-value: 1
      #logic-not-delete-value: 0
      db-type: mysql
    #刷新mapper 调试神器
    refresh: true
  # 原生配置
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    cache-enabled: true

单元测试运行结果:

用Idea 2019.3+和Gradle5.2.1+ 构建SpringBoot多项目(十)——mybatis plus_第2张图片

 使用IPage作为分页组件

 MybatisPlusConfiguration

@Configuration
public class MybatisPlusConfiguration {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
        paginationInterceptor.setOverflow(false);
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        paginationInterceptor.setLimit(500);
        // 开启 count 的 join 优化,只针对部分 left join
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(false));
        return paginationInterceptor;
    }
}

 单元测试运行结果:

用Idea 2019.3+和Gradle5.2.1+ 构建SpringBoot多项目(十)——mybatis plus_第3张图片

至此完成mybatis plus配置使用。

 

 ————————————————

 Github项目 https://github.com/HazelNutsWorkGroup/nuts.springboot.single ,

 Gitee项目   https://gitee.com/sleeber/nuts.springboot.single

 欢迎大家交流

你可能感兴趣的:(Gradle,Spring,Boot,gradle,spring,boot,mybatis,mybatis,plus)