情景引入:
小白:起床起床了,,,,太阳都晒屁股了。
我:好不容易有个睡懒觉的机会,你又把我吵起来干嘛呢?不能给我放一个假吗?
小白:不可以不可以,我又遇到了一个问题,我需要你的帮忙,你赶紧帮我想想办法呗。
我:又怎么了?你怎么有这么多的问题呢?这次又是什么呢?
小白:就是,就是,平常在用mybatis框架的时候,老是遇到很多的增删改查的方法,每次都要重复性的写一些重复性的代码,我觉得这个好麻烦。
我:对呀,增删改查是我们必须要做的事情,这怎么了呢?
小白:但是,这样看起来代码冗余太多了,而且,还要不断的编写实体类对应数据库中的字段内容,有时候还把里面的内容写错了,后面还花时间去解决这个不必要的问题呢。。
我:那这就告诉你,不管做任何的事情,都要认真仔细呀!我觉得挺好的嘛。
小白:有没有什么好方法,可以自动生成实体类和mapper映射文件的方法呀?这样就可以帮我更加快速的写代码了,我就可以多花时间到业务上去了呢。
我:你还真会想着偷懒的嘛。。
小白:嘻嘻,嘻嘻。。。
我:好的,既然你这么想学习的话,那么我就给你稍微介绍一下,在我们平常的时候,用得比较多的处理小技巧好了。
情景分析:
本篇文章,主要是讲解如下两个方面的知识点,而且这两个在于我们的开发中是经常用到的,并且还可以加快我们的快发速度哦,我觉得,还是有必要学会的。毕竟俗话说得好“工善其事必先利其器”,所以,学着点呗。
知识点一:教你如何用插件解决我们在mybatis中经常写单表的“增删改查”操作。
知识点二:教你如何用插件解决我们对于数据库表和字段生成项目中对应的实体类以及mapper映射。
如何玩转分页插件(干货):https://blog.csdn.net/cs_hnu_scw/article/details/80718467
一:玩转通用Mapper插件
情景环境一:SpringBoot + Mybatis
通用Mapper定义:就是将单表操作的增删改查都是系统方法进行了实现,而不需要我们独自进行编写对应的mapper.xml的SQL语句,这样就可以方便我们对于平常使用到的映射而不用手动编写。
使用步骤:
(1)在pom.xml中添加依赖
<!-- 通用mapper,方便进行单标查询语句的封装而不用自己进行编写 -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.1.0</version>
</dependency>
(2)编写通过mapper接口(这个和我们正常编写的java类最好分开一个目录,原因后续会说)
注意:比如,我一般我的controller,service,dao,mapper类的文件都是放在目录:com.hun.scw.*目录
而我的这个通用mapper接口我就放在:com.utils目录下即可。(因为,我的扫描类都是直接扫描com.hnu.scw.*目录的文件,而通用的mapper接口是不能被扫描的,否则会报classNotFind的错误,所以要特别注意)。目录如下所示:
package com.utils;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
/**
* @ Author :scw
* @ Date :Created in 下午 4:24 2018/6/17 0017
* @ Description:配置通用mapper的接口
* @ Modified By:
* @Version: $version$
*/
public interface CommonMapper<T> extends Mapper<T> , MySqlMapper<T>{
}
解析:看着这个接口没有编写任何的方法,但是它继承了Mapper接口,这就很强大了。
(3)在application.properties文件(或者application.yml)添加通用mapper配置
# 配置通用mapper插件的内容
# 第一个是配置通用接口所在的目录
mapper.mappers=com.utils.CommonMapper
mapper.not-empty=false
mapper.identity=MYSQL
(4)编写我们根据不同实体pojo类需要进行的mapper操作接口。(我这里就随便写两个额外的操作,但是你使用的时候你就会发现很奇妙的事情,就是比如增删改查的单表的操作都已经写好了,而不用自己编写mapper.xml文件哦,强大不强大?)
packag