还记得当初最开始创建数据库那一系列的东西时,创建model对象,从已有的项目中copyxml文件,然后对应着自己的数据库修改映射关系,在mapper(interface)中添加方法,在对应的xml里面手写sql语句。
如果一个项目中的table比较少的话,工作量还不是很大,但当DB中的table特别多的时候,这么做无疑是一个很大的工作量。
现在随着各种插件及工具包的发展,衍生出一套mybatis-generator + tkmybatis的自动生成工具。
接下来就细看详细过程:
1.在pom文件中添加必要的依赖和插件
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.43</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.5.0</version>
</dependency>
</dependencies>
<version>1.3.5</version>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<phase>none</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
2.自定义创建接口,并实现Mapper<T>,MySqlMapper<T>
如下所示:
public interface CommonMapper<T> extends Mapper<T>, MySqlMapper<T> {
}
这样既可
3.在resource目录下新建generatorConfig.xml文件。
文件详细内容如下,包含必要的注释:
<?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">
<generatorConfiguration>
<!--导入属性配置 -->
<!--<properties resource="generator.properties"></properties>-->
<!--指定特定数据库的jdbc驱动jar包的位置 -->
<classPathEntry
location="说明(自己本地的目录,盘符冒号之后是//,剩下其他都是/) /mysql-connector-java-5.1.45.jar"/>
<context id="MySql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="com.example.demo.dao.CommonMapper"/> 此处是自己定义的包目录
<!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->
<property name="caseSensitive" value="true"/>
</plugin>
<!-- optional,旨在创建class时,对注释进行控制 -->
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--jdbc的数据库连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/自己的数据库名称?useSSL=false"
userId="数据库连接账户"
password="数据库连接密码">
</jdbcConnection>
<!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
targetPackage 指定生成的model生成所在的包名
targetProject 指定在该项目下所在的路径
-->
<javaModelGenerator targetPackage="com.example.demo.model" targetProject="src/main/java">
<!-- 是否对model添加 构造函数 -->
<!--<property name="constructorBased" value="true"/>-->
<!-- 是否允许子包,即targetPackage.schemaName.tableName -->
<property name="enableSubPackages" value="false"/>
<!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 -->
<property name="immutable" value="false"/>
<!-- 给Model添加一个父类 -->
<!--<property name="rootClass" value="com."/>-->
<!-- 是否对类CHAR类型的列的数据进行trim操作 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
<javaClientGenerator targetPackage="com.example.demo.mapper" targetProject="src/main/java"
type="XMLMAPPER">
<!--<property name="enableSubPackages" value=""/>-->
<!--
定义Maper.java 源代码中的ByExample() 方法的可视性,可选的值有:
public;
private;
protected;
default
注意:如果 targetRuntime="MyBatis3",此参数被忽略
-->
<!--<property name="exampleMethodVisibility" value=""/>-->
<!--
方法名计数器
Important note: this property is ignored if the target runtime is MyBatis3.
-->
<!--<property name="methodNameCalculator" value=""/>-->
</javaClientGenerator>
<table tableName="t_table_name" domainObjectName="TableName">此处是定义的model的名称
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
<table tableName="t_table_name" domainObjectName="TableName">此处是定义的model的名称
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
<table tableName="t_table_name" domainObjectName="TableName">此处是定义的model的名称
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
</context>
</generatorConfiguration>
4.使用maven的plugins插件mybtais-generator下的mybatis-generator:generate,双击既可。
#########################################################################################
以上这些操作既可完成,接下来就可以对照着自己编写的目录寻找对应生成的文件了。