通用mapper是為了方便開發(fā)人員對(duì)單表進(jìn)行crud操作而產(chǎn)生的一套通用方法。
通用mapper只支持單表操作,可以根據(jù)自己的需求開發(fā)自己的通用方法。
Mybatis Generator是一個(gè)自動(dòng)生成代碼工具,可以在開發(fā)中極大的提高我們的開發(fā)效率,省去了我們寫實(shí)體類,mapper接口和xml的時(shí)間。有了這個(gè)插件,我們可以只關(guān)心數(shù)據(jù)庫表的設(shè)計(jì)。
下面介紹一下如何在springboot項(xiàng)目中使用通用mapper和mbg。
1.首先,我們需要在項(xiàng)目中添加mybatis和通用mapper的maven依賴,以及配置mbg啟動(dòng)方式為maven啟動(dòng)方式。

WechatIMG2.jpeg

WechatIMG.jpeg
添加mybatis和通用mapper的maven依賴:
<!--mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!--mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
配置mbg為maven啟動(dòng)方式
<!--配置mbg-->
<!--此處應(yīng)注意mybatis-generator-maven-plugin的版本-->
<!--較低版本的依賴會(huì)導(dǎo)致xml中包含@mbg.generator注釋的代碼不會(huì)被覆蓋,造成增量疊加問題-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<!--generator配置文件所在位置-->
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.4.0</version>
</dependency>
</dependencies>
</plugin>
2.配置mbg的配置文件,制定代碼生成規(guī)則
各配置參數(shù)詳解參照http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.md 在此不作過多解釋

WechatIMG3.jpeg
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!--根節(jié)點(diǎn) -->
<generatorConfiguration>
<!-- 指定外部的屬性元素 -->
<properties resource="application.yml"/>
<!-- 必須 指定生成一組對(duì)象的環(huán)境 -->
<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<!--分隔符 -->
<property name="autoDelimitKeywords" value="true"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!-- 通用mapper插件 -->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<!-- 此處的 MyMapper注意一定不能被掃描到-->
<property name="mappers" value="com.demo.utils.MyMapper"/>
</plugin>
<!-- 注釋 規(guī)則-->
<commentGenerator>
<property name="suppressAllComments" value="false"/>
<property name="suppressDate" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test"
userId="root"
password="123456">
</jdbcConnection>
<javaModelGenerator targetPackage="com.demo.domain" targetProject="src/main/java"/>
<sqlMapGenerator targetPackage="sqlmapper" targetProject="src/main/resources"/>
<javaClientGenerator targetPackage="com.demo.mapper" targetProject="src/main/java"
type="XMLMAPPER"/>
<table tableName="%">
<!--mysql 配置-->
<generatedKey column="id" sqlStatement="Mysql" />
<!--oracle 配置-->
<!--<generatedKey column="id" sqlStatement="select SEQ_{1}.nextval from dual" identity="false" type="pre"/>-->
</table>
</context>
</generatorConfiguration>
3.生成一組對(duì)象,測(cè)試通用mapper的方法
通用mapper接口請(qǐng)參照 https://mapperhelper.github.io/all/
使用maven生成對(duì)象

掃描mapper接口所在包

WechatIMG5.jpeg
測(cè)試通用mapper方法

WechatIMG6.jpeg
使用通用mapper極大的減少了我們寫簡單查詢方法必要性。