之前做项目经常听说通过mybatis逆向工程直接生成代码,直接使用即可,但是mybatis是如何通过逆向工程生成代码的,一直不是很了解,最近通过一个小例子实现了一下,下面简单总结一下:
通过mybatis逆向工程自动生成*-mapper.java接口文件,model实体类,以及*Mapper.xml sql映射文件,demo是基于maven项目。
1、在项目的pom文件中,添加mybatis-generator-maven-plugin插件
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
</plugin>
2、编写generatorConfig.xml配置文件,具体见配置文件注释
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEgeneratorConfigurationPUBLIC"-//mybatis.org//DTDMyBatisGeneratorConfiguration1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!--数据库驱动-->
<propertiesresource="jdbc.properties"/>
<classPathEntrylocation="D:\maven\repo\mysql\mysql-connector-java\5.1.29\mysql-connector-java-5.1.29.jar"/>
<contextid="DB2Tables">
<!--生成的Java文件的编码-->
<propertyname="javaFileEncoding"value="UTF-8"/>
<!--格式化java代码-->
<propertyname="javaFormatter"value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
<!--格式化XML代码-->
<propertyname="xmlFormatter"value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
<!--注释-->
<commentGenerator>
<propertyname="suppressAllComments"value="true"/><!--是否取消注释-->
<propertyname="suppressDate"value="true"/><!--是否生成注释代时间戳-->
</commentGenerator>
<!--数据库链接URL,用户名、密码-->
<jdbcConnection driverClass="${driverClasss}" connectionURL="${jdbcUrl}" userId="${username}" password="${password}"/>
<!--类型转换-->
<javaTypeResolver>
<!--是否使用bigDecimal,false可自动转化以下类型(Long,Integer,Short,etc.)-->
<propertyname="forceBigDecimals"value="false"/>
</javaTypeResolver>
<!--生成实体类地址-->
<javaModelGeneratortargetPackage="com.ssm.demo.model"targetProject="src/main/java">
<!--是否针对string类型的字段在set的时候进行trim调用-->
<propertyname="trimStrings"value="false"/>
</javaModelGenerator>
<!--生成mapxml文件-->
<sqlMapGeneratortargetPackage="com.ssm.demo.dao"targetProject="src/main/java"/>
<!--生成mapxml对应client,也就是接口dao-->
<javaClientGeneratortargetPackage="com.ssm.demo.dao"targetProject="src/main/java"type="XMLMAPPER"/>
<!--配置表信息-->
<!--tableName为对应的数据库表
domainObjectName是要生成的实体类
enable*ByExample是否生成example类
-->
<tabletableName="users" domainObjectName="users_model"
enableCountByExample="true"
enableDeleteByExample="true"
enableSelectByExample="true"
enableUpdateByExample="true"/>
</context>
</generatorConfiguration>
3、最后一步,生成代码
点击Maven Project——自己的项目——Plugins——右击mybatis generator——Run Maven build
生成成功:
相关文件生成成功: