MybatisPlus整合springCloud---去xml化

简述

还是和我之前分享的SpringBoot结合mybatis + tk.mapper(通用增删改查组件) + pageHelper(分页插件)一样,用springBoot我就不想用其他的配置文件,xml文件。

mybatisPlus2.x 版本不支持@Select或者@SelectProvider自定义sql结合分页插件使用,只支持xml文件的方式。所以本篇在mybatisPlus3.x基础上例子。

如果使用mybatisPlus2.x,推荐两篇写的不错的博客

https://blog.csdn.net/apicescn/article/details/79538938

https://blog.csdn.net/apicescn/article/details/79554597

如果要在2.x版本使用自定义sql分页,除了使用xml配置文件,也可以引入分页组件pageHelper

mybatisPlus和tk.mapper比较,网上很多比较文章,这里不多赘述

mybatisPlus比tk.mapper多了很多实用的功能确实不错,但是这个无xml的分页折磨我很久,总觉得分页和mybatisPlus太耦合。

 

开始配置

 配置文件

pom文件  

springBoot配置多说,mybatisPlus版本为3.1.1,3.x版本代码生成器多了分出一个jar包mybatis-plus-generator

   
        UTF-8
        1.8
        2.1.3.RELEASE
        2.7.0
        1.18.6
        2.9.8
        9.4.1211
        1.2.0
        3.1.1
        

        
        
            org.postgresql
            postgresql
            ${postgresql.driver.version}
        
        
        
            com.baomidou
            mybatis-plus-boot-starter
            ${mybatisplus.version}
        
        
            com.baomidou
            mybatis-plus
            ${mybatisplus.version}
        
        
            com.baomidou
            mybatis-plus-generator
            ${mybatisplus.version}
        
        
            com.baomidou
            mybatis-plus-dts
            ${mybatisplus.version}
        

yml文件

mybatis有驼峰转换在tk,mapper生效,但是用mybatisPlus必须配置它的驼峰转换。

此处猜测大部分配置用mybatisPlus的配置才能生效,因为各种配置是针对mybatisPlus

 

spring:
  application:
    name: report-service
  swagger:
    package: com.zhou.demo.mybatisplus.controller
  profiles:
    active: dev
  datasource:
      driverClassName: org.postgresql.Driver
      url: *******************************
      username: *******************************
      password: *******************************
      tomcat:
          max-active: 300

server:
  port: 8080

mybatis-plus:
  type-aliases-package: com.zhou.demo.mybatisplus.dao.bean
  configuration:
    map-underscore-to-camel-case: true

代码实现

mybatisPlus的注解tableName和TableField condition是查询的方式like查询,可以说支持的很好了

3.x较2.x下面的实现类的路径做了一定漂移

@Data
@TableName("tb_person")
public class Person{
   private String id;
   @TableField(condition = SqlCondition.LIKE)
   private String name;
   private int age;
}
public interface PersonMapper extends BaseMapper {

     @SelectProvider(type = PersonProvider.class, method = "findByPage")
    //@Select("select * from tb_person where name = #{name} ")
    IPage findPage(Page page, String name);

}

类似tk.mapper也是基础一个公共类mapper实现通用方法,不过比tk.mapper要更加全面

此处有一个自定义的方法findPage,用来测试自定义sql结合plus的分页插件,@select和@SelectProvider就不展开介绍了

 

@Service
public class PersonService extends ServiceImpl {

    public Person get(String id){
        return getById(id);
    }

    public boolean saveEntity(Person person){
       return save(person);
    }

    public IPage findByPage(String name){
        Person person = new Person();
        person.setName(name);
        Wrapper wrapper = new QueryWrapper(person);
        Page page = new Page<>();
        IPage personIPage = baseMapper.selectPage(page, wrapper);
        return personIPage;
    }

    public IPage testPage(String name){
        Page page = new Page<>();
        IPage personIPage = this.baseMapper.findPage(page, name);
        return personIPage;
    }

}

service层分别是保存,查询,分页方法,以上满足了用mybatisPlus全程去XML的使用方法

详细代码可以查看我git上的分享

https://github.com/zhouxiaohei/spring-boot-mybatisPlus-demo

 

 

 

你可能感兴趣的:(SpringCloud芝士,#,#,SpringCloud问题梳理)