一、什么是通用mapper,即Tkmybatis
通用mapper不是为了代替mybatis,它和mybatis-plus一样,而是让mybatis开发更方便,它是国人开发的一个第三方插件。
在我们开发过程,更容易进行ORM的操作,提供了单表的CRUD常用的方法。
二、为什么要用它?
主要我们用原生的Mybatis,或者用了mybatis generator(MBG)这个工具自动生成相关脚本(pojo,Mapper.java,Mapper.xml,Example java),也有以下痛点:
1.mapper.xml文件中有大量的sql脚本,当后期数据库字段变动,我们就要去维护这个配置文件,这个工作量太大了。
2.数据库可移值性差,mapper.xml中的sql不同的数据库是不一样的,所以基本上要重写。
3.生成的代码量过大。
4.批量的插入、批量更新等需我们自己定义。
三、spring boot如何配置通用Mapper:
1.pom.xml中的内容(原来的mybatis相关配置可以去掉,这个配置自动注入相关mybatis的依赖包):
<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>版本号</version> </dependency>
最新版本号如上所示,你也可以从下面地址查看:
http://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter
2.spring boot 启动类:
@tk.mybatis.spring.annotation.MapperScan(basePackages = "扫描包")
@SpringBootApplication
public class SampleMapperApplication{
}
注意:这里使用的 tk.mybatis.spring.annotation.MapperScan !
3.application.yml中的内容:
mybatis: #mapper-locations: classpath:mapper/*.xml mapper-locations: classpath*:com/zjm/gwork/**/mapper/*mapper.xml #type-aliases-package: com.zjm.gwork.model type-aliases-package: com.zjm.gwork.**.model #通用mapper mappers: com.zjm.common.util.BaseMapper not-empty: false identity: MYSQL
4.自定义本地通用Mapper基础接口,继承通用Mapper接口,此接口要配置到application.yml的mybatis部分中(如上图),同时注意以下的注释详细说明:
package com.zjm.common.util;
import org.springframework.stereotype.Component;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
/**
* @ClassName: BaseMapper
* @Description: 通用Mapper基础接口
* 1.此接口不能让spring boot的ScanMapper扫描到,否则会报错,所以没有放到gwork包下面(即没有和普通业务接口放在一起)
* 2.BaseMapper还需要配置到application.yml中
* @Author: zhongzk 28582157@qq.com
* @Date: 2019/6/7 14:22 *
* @Copyright: 2018 字节码团队www.bjsurong.com. All rights reserved. *
*/
@Component
public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> {
}
本文介绍Tkmybatis通用Mapper插件,旨在简化Mybatis开发流程,提供便捷的ORM操作及单表CRUD方法,解决原生Mybatis及MBG工具的痛点,包括大量SQL维护、数据库移植困难等问题。并详细指导SpringBoot环境下通用Mapper的配置步骤。
3878

被折叠的 条评论
为什么被折叠?



