springboot和MybatisPlus整合

springboot和MybatisPlus整合

1.介绍
使用SpringBoot + Mybatis + MybatisPlus(MP) 全新注解方式,自动产生SQL语句,替代旧的通用Mapper。旧的通用Mapper是基于Mybatis拦截器的机制,而新的MybatisPlus是基于注解扫描机制,在启动服务时就进行加载,所以性能比旧的通用Mapper方式高很多。
MyBatisPlus官网:http://mp.baomidou.com
2. MybatisPlus注解

Pojo对象上标识,自动驼峰规则
@TableName("tb_cart")	//类和表的映射
public class Cart extends BasePojo{
	private static final long serialVersionUID = 1L;
	//@TableField(exist=false)	//数据库表中不存在的字段要标识
	@TableId(value="id",type=IdType.AUTO)	//主键自增
	private Long id;
	@TableField("user_id")	//属性和字段的映射
	private Long userId;
	@TableName("tb_cart")						//类和表的映射
	@TableId(value="id",type=IdType.AUTO)	//主键自增
	@TableField("user_id")					//属性和字段的映射
	@TableField(exist=false)					//表中不存在的字段要标识

3.Mybatis提供QBC( Query By Criteria),实现面向对象的查询方式。
实体包装器 EntityWrapper,用于处理 sql 拼接,排序,实体参数查询等。注意其使用的是数据库字段而不是java属性

例如:翻页查询
public Page<T> selectPage(Page<T> page, EntityWrapper<T> entityWrapper) {
  if (null != entityWrapper) {
      entityWrapper.orderBy(page.getOrderByField(), page.isAsc());
  }
  page.setRecords(baseMapper.selectPage(page, entityWrapper));
  return page;
}
拼接SQL方式 一:
    EntityWrapper<User> ew = new EntityWrapper<User>();
    ew.setEntity(new User(1));
    ew.where("user_name={0}", "'tonychen'").and("id=1")
            .orNew("user_status={0}", "0").or("status=1")
            .notLike("user_nickname", "tony")
            .andNew("new=xx").like("hhh", "ddd")
            .andNew("pwd=11").isNotNull("n1,n2").isNull("n3")
            .groupBy("x1").groupBy("x2,x3")
            .having("x1=11").having("x3=433")
            .orderBy("name").orderBy("birthday,address");
    System.out.println(ew.getSqlSegment());
拼接 SQL方式 二:
int buyCount = selectCount(Condition.create()
                .setSqlSelect("sum(quantity)")
                .isNull("order_id")
                .eq("user_id", 1)
                .eq("type", 1)
                .in("status", new Integer[]{0, 1})
                .eq("product_id", 1)
                .between("created_time", startDate, currentDate);

4.pom.xml

 <!-- mybatisplus与springboot整合 -->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatisplus-spring-boot-starter</artifactId>
      <version>1.0.5</version>
    </dependency>
    <!-- MP 核心库 -->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus</artifactId>
      <version>2.1.8</version>
    </dependency>
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper-spring-boot-starter</artifactId>
      <version>1.2.3</version>
    </dependency>

5.yml

server:
  port: 9101

spring:
  application:
    name: oa-user
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/oa566
    username: root
    password: 123456
mybatis:
  mapUnderscoreToCamelCase: true
  typeAliasesPackage: com.ls.oa.pojo
  mapperLocations: classpath:mappers/*.xml

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true

logging:
  level:
    com.ls.oa.mapper: debug

5.dao层

public interface SysUsersMapper extends BaseMapper<SysUsers> {

}

6.实现类

@Autowired
  private SysUsersMapper sysUsersMapper;

  @Override
  public Boolean queryUserName(String userName) {
    EntityWrapper<SysUsers> ew = new EntityWrapper<>();
    SysUsers sysUsers = new SysUsers();
    ew.setEntity(sysUsers);
    sysUsers.setUsername(userName);
    Integer count = sysUsersMapper.selectCount(ew);
    if(count<0){
      return true;
    }
    return false;
  }

6.简单的写到这里,入门级别的,更多请访问MyBatisPlus官网:http://mp.baomidou.com
7.若报错找出mapper请加的配置
application.yml

server:
  port: 8080

#开发配置
spring:
  profiles: dev
  datasource:
    # 使用druid数据源
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/oauth2?serverTimezone=GMT%2B8
    username: root
    password: 123456
---
#默认使用配置
spring:
  profiles:
    active: dev
mybatis:
  mapUnderscoreToCamelCase: true
  typeAliasesPackage: com.yd.pojo
  mapperLocations: classpath:mappers/*.xml
mybatis-plus:
    map-underscore-to-camel-case: true
    mapper-locations: classpath:mappers/*.xml
    type-aliases-package: com.yd.pojo
logging:
  level:
    com.yd.mapper: debug

posted @ 2019-06-01 13:57  smileLS66  阅读(78)  评论(0编辑  收藏  举报