配置

  • pom依赖
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.1</version>
</dependency>
<!--mapper-->
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>1.2.4</version>
</dependency>
<!--pagehelper-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.3</version>
</dependency>
  • application配置
#mybatis
mybatis.type-aliases-package=tk.mybatis.springboot.model
mybatis.mapper-locations=classpath:mapper/*.xml

#mapper
#mappers 多个接口时逗号隔开
mapper.mappers=tk.mybatis.springboot.util.MyMapper
mapper.not-empty=false
mapper.identity=MYSQL

#pagehelper
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
  • application.yml 配置
mybatis:
    type-aliases-package: tk.mybatis.springboot.model
    mapper-locations: classpath:mapper/*.xml

mapper:
    mappers:
        - tk.mybatis.springboot.util.MyMapper
    not-empty: false
    identity: MYSQL

pagehelper:
    helperDialect: mysql
    reasonable: true
    supportMethodsArguments: true
    params: count=countSql
  • 创建一个通用接口
//接口名随意
public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
    //TODO
    //FIXME 特别注意,该接口不能被扫描到,否则会出错
}
  • mapper层配置

    注意:entity与数据表必须对应,否则会报错

@Mapper
public interface UserMapper extends MyMapper<User> {//实现自定义的接口
}
  • entity层配置
  1. entity类必须与数据库表同名或与驼峰形式对应;
  2. entity参数必须与数据表字段对应;
  3. 需要在entity上添加属性时,不能修改原始entity,需要重新创建一个entity继承原entity;增删改功能可以直接使用新entity,查询时返回的数据表对应的entity类型必须是原entity类型,若想转为新的entity,需要自己转换比如
List<子> tab2s = JSONArray.parseArray(JSON.toJSONString(tab1s), 子.class);

注意:当entity中添加其他参数时,调用增删改查方法都会异常,因为增删改查是以entity为基础的;在mapper层继承MyMapper时填入了entity,entity变化会引起对应SQL语句变化,会导致调用数据库异常.

调用

  • 基本增删改查

Spring Boot 集成 MyBatis, 分页插件 PageHelper, 通用 Mapper

Spring Boot 集成 MyBatis, 分页插件 PageHelper, 通用 Mapper

Spring Boot 集成 MyBatis, 分页插件 PageHelper, 通用 Mapper

Spring Boot 集成 MyBatis, 分页插件 PageHelper, 通用 Mapper

  • 复杂查询
Example example=new Example(User.class);
example.setOrderByClause("id DESC");
Example.Criteria criteria=example.createCriteria();
criteria.andIsNotNull("id");
userMapper.selectByExample(example);

相关文章: