前提

通用Mapper——tk.mybatis(Example)

正文

由于tk.mybatis.mapper.common.Mapper中只有
BaseMapper<T>, ExampleMapper<T>, RowBoundsMapper<T>, Marker这几个mapper,对于一些实际应用的场景是不够用的。通过Mapper 接口大全可以看到还有很多好用的Mapper,比如 IdsMapper<T>、MySqlMapper<T>等,我们可以通过多继承的方式将它们统统继承过来,但是这样每个表对应的mapper接口都会有一大堆的继承,很不好看,所以将他们整合成一个mapper接口,通过继承这个接口来继承我们想使用的所有mapper接口。

1. 创建自定义的mapper接口

import tk.mybatis.mapper.annotation.RegisterMapper;
import tk.mybatis.mapper.common.IdsMapper;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;/*** 自定义的通用mapper* 除了集成基本的增删改查以外,还集成了批量添加,通过id集合批量删除、批量查询** @author √Angelの爱灬* @date 2022/4/16*/
@RegisterMapper
public interface AllMapper<T> extends Mapper<T>, MySqlMapper<T>, IdsMapper<T> {}

这里可以通过使用@tk.mybatis.mapper.annotation.RegisterMapper注解来注册这个mapper,官网的解释是这样的:

在 4.0 以前这是一个非常重要的参数,当时只有通过 mappers 配置过的接口才能真正调用,由于很多人不注意看文档,通用 Mapper 90% 的问题都出在这个参数上。
4.0 之后,增加了一个 @RegisterMapper 注解,通用 Mapper 中提供的所有接口都有这个注解,有了该注解后,通用 Mapper 会自动解析所有的接口,如果父接口(递归向上找到的最顶层)存在标记该注解的接口,就会自动注册上。因此 4.0 后使用通用 Mapper 提供的方法时,不需要在配置这个参数。
当你自己扩展通用接口时,建议加上该注解,否则就要配置 mappers 参数。

2. 各表对应的mapper接口继承该接口

import com.study.tk.mybatis.expand.AllMapper;
import com.study.tk.mybatis.entity.Employee;/*** 通用 Mapper 代码生成器** @author mapper-generator*/
public interface EmployeeMapper extends AllMapper<Employee>

特别注意:SpringBoot启动类上的@MapperScan不能扫描到自定义的Mapper接口,不然会报错。

3. 代码生成器的配置

如果使用了代码生成器,则需要配置<property name="mappers" value="com.study.tk.mybatis.expand.AllMapper"/>,生成的Mapper接口才会自动继承自定义的接口

<plugin type="tk.mybatis.mapper.generator.MapperPlugin"><!-- 必填属性。声明mapper接口需要继承哪些接口,多个mapper之间用“,”分隔开 --><!--<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>--><!--自己的通用接口--><property name="mappers" value="${baseMapperLocation}"/><property name="useMapperCommentGenerator" value="true"/><property name="caseSensitive" value="true"/><property name="beginningDelimiter" value="`"/><property name="endingDelimiter" value="`"/><property name="lombok" value="Data"/><property name="swagger" value="false"/>
</plugin>

通用mapper——自定义搭配继承Mapper相关推荐

  1. mybatis通用mapper_全网最全Mapper解析,附实操代码帮你更好理解

    今天给大家介绍一位老朋友 当你第一次接触Java开发的时候,这个老朋友就和你形影不离,当你要进行ORM的时候,单表的增删改查,这位老朋友给了你极大的帮助,不知道你想到他了吗?对,这就是通用mapper ...

  2. 所有网站都通用的自定义弹出框alert

    A.所有网站都通用的自定义弹出框.A </body> <script>var Alert = function(data){//没有数据则返回if(!data){return; ...

  3. 6.mybatis异常:SQL Mapper Configuration,Error parsing Mapper XML,Could not resolve type alias

    6.mybatis异常:SQL Mapper Configuration,Error parsing Mapper XML,Could not resolve type alias 参考文章: (1) ...

  4. Mapper method ‘com.LH.mapper.EmployeeMapper.insertEmployee‘ has an unsupported return type: cla 报错

    问题: Mapper method 'com.LH.mapper.EmployeeMapper.insertEmployee' has an unsupported return type: clas ...

  5. linux分区mapper,Linux系统/dev/mapper目录浅谈

    Linux系统的一般的文件系统名称类似于/dev/sda1或/dev/hda1,但是今天在进行系统维护的时候,利用df -h 命令敲出了/dev/mapper/VolGroup-lv_root和/de ...

  6. java用tkmapper分组查询_tk.mybatis 中的通用Mapper自定义SQL语句

    前言 今天就是想写点什么,其实还有很多没写的东西呢!笔记里边好多东西都挺好的,经验加实践总结出来的.就是都没有系统的整理,至于原因吧,有很多,最重要的一点就是我有点懒.今天写个最简单的东西,现在的开发 ...

  7. Beetlsql自定义生成entity,mapper,md代码

    三个模板文件 mapper.btl package ${package}; import org.beetl.sql.core.annotatoin.*; import org.beetl.sql.c ...

  8. md文件生成Java代码_Beetlsql自定义生成entity,mapper,md代码

    packagecom.github.tungss.auth;import org.beetl.sql.core.*;import org.beetl.sql.core.db.*;import org. ...

  9. java中example函数作用_mybatis mapper学习4-MyBatis的Mapper接口以及Example的实例函数及详解...

    mybatis能够自动生成sql语句,也能够添加自定义sql语句 使用mybatis generator生成XX.java,XXExample.java,XXmapper.java,XXmapper. ...

最新文章

  1. Jquery判断元素是否隐藏:display属性状态值
  2. MyBatis 问题(持续更新)
  3. LiveVideoStack线上交流分享 ( 四 ) —— 面向QoE的感知视频编码
  4. c语言全面,最新版c语言经典习题100例(最全面).doc
  5. ADC 前端电路的五个设计步骤(转载)
  6. Python values()函数
  7. (73)C#里怎么样调用WIN API的函数时传送结构或指针对象
  8. 叉积的证明_矢量叉乘分配律的几何证明
  9. 51单片机控制步进电机-电路连接
  10. [转发]知识图谱 (Knowledge Graph) 专知 荟萃
  11. div + css 实现页面居中显示
  12. 关于Linux下通过ping/mtr 长期监控网络输出日志报告的一些笔记
  13. CTO应具备的知识体系
  14. 让“数据库审计”服务保卫你的数据库
  15. PhotoZoom Pro—图片“无损”放大
  16. 微信小程序支付流程(Java后端)
  17. 一些有用的定律和法则,方法
  18. access2003绿色中文版(转)
  19. 论文常用图表四:Bland-Altman图【MedCalc】
  20. 【华人学者风采】秦克章 中国科学院

热门文章

  1. Factory IO仿真工厂与西门子博途软件联动仿真
  2. 字节跳动核心竞争力到底是什么?
  3. ArcGIS教程:视域
  4. Python编程题:用户登录,三次机会后锁定
  5. Android Study Material Design 十 再探沉浸式
  6. Hive启动报错:java.lang.ClassNotFoundException: org.apache.tez.dag.api.TezConfiguration
  7. POJ 2455 dinic
  8. java JFreechart开发报表的实例demo下载
  9. 1.结束进程的正确方式
  10. 脱掉360奇虎的“加固保”壳后的发现与你的微信安全