刚开始用mybatis时,是在项目组中,项目原来是没有用mybatis框架的,后来组长让我改造成mybatis,为所有表写model和mapper。真的是一个费力的活,当时花了两个星期才把全部表的model和mapper改好。后来才知道有mybatis-generator这个工具,可以通过配置生成,省去了很多费力的事。
首先要下载mybatis-generator-core-1.x.x.jar,我这里用mybatis-generator-core-1.3.7.jar,在maven中央仓库下载。另外下载mysql连接的jar包,我这里用mysql-connector-java-8.0.11.jar。
之后要创建一个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>
<!--数据库驱动-->
<classPathEntry location="mysql-connector-java-8.0.11.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/test?serverTimezone=GMT" userId="root" password="">
<property name="useInformationSchema" value="true"/>
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="com.sadoshi.springboottest.model" targetProject="main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="com.sadoshi.springboottest.mapper" targetProject="main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.sadoshi.springboottest.mapper" targetProject="main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成对应表及类名-->
<table tableName="classinfo" domainObjectName="ClassInfo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" enableInsert="false"></table>
</context>
</generatorConfiguration>
其中数据库驱动、数据库连接要按自己实际情况修改。targetProject为项目对应的位置,targetPackage为对应的包名。Model、Mapper、Dao类对按照配置的路径,自动生成到对应位置。最后配置需要生成的表。可以配置需要生成哪些语句,因为都是些基本语句,而且生成太多显得mapper很乱,所以我基本都选了false(默认是true),不自动生成语句,由我自己手动来写
mybatis-generator有两种执行的方式,一种是配置在maven的pom.xml中,通过maven命令执行,我个人不是很喜欢这种方式。另一种方式是用命令行执行。首先把generatorConfig.xml、mybatis-generator-core-1.3.7.jar、mysql-connector-java-8.0.11.jar放在一个文件夹中,然后打开cmd,切换到该文件夹下,执行java -jar mybatis-generator-core-1.3.7.jar -configfile generatorConfig.xml -overwrite就可以生成了。注意generatorConfig.xml中targetProject的路径问题即可。
mybatis-generator的使用选项很多,细致的使用方式建议参考官网http://www.mybatis.org/generator/index.html的配置解释
PS:如果使用mysql-connector-java的使用版本6以上的话,需要加上这句<property name="useInformationSchema" value="true"/>,否则自动生成的xml映射文件中,会找不到主键,包括table标签内的一些自动生成基于主键的语句都无法生成。