mybatis-generator是一款在使用mybatis框架时,自动生成model,dao和mapper的工具,很大程度上减少了业务开发人员的手动编码时间,今天自己研究了一下,也分享一下使用心得供大家简单使用。
本人使用的是maven构建,首先需要在pom.xml文件添加mybatis-generator依赖包以及插件,配置如下:
dependencies中添加:
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
在build的plugins中添加:
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<!-- mybatis用于生成代码的配置文件 -->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
上面就是pom.xml中需要添加的配置,接下来就是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="/Users/yehaixiao/Maven/mysql/mysql-connector-java/5.1.30/mysql-connector-java.jar"/>
<context id="my" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="false"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- mysql数据库连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/test" userId="root"
password="******"/>
<!-- 生成model实体类文件位置 -->
<javaModelGenerator targetPackage="com.ssmgen.demo.model"
targetProject="/Users/yehaixiao/asiainfo/ssm-demo/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成mapper.xml配置文件位置 -->
<sqlMapGenerator targetPackage="com.ssmgen.demo.mapper"
targetProject="/Users/yehaixiao/asiainfo/ssm-demo/src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成mapper接口文件位置 -->
<javaClientGenerator targetPackage="com.ssmgen.demo.mapper"
targetProject="/Users/yehaixiao/asiainfo/ssm-demo/src/main/java" type="XMLMAPPER">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 需要生成的实体类对应的表名,多个实体类复制多份该配置即可 -->
<table tableName="TEST1" domainObjectName="Test"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
复制代码
另附带一份Orcale的generator-config.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>
<context id="DB2Tables" targetRuntime="MyBatis3">
<!--<plugin type="net.coderbee.mybatis.batch.BatchStatementHandler"></plugin>
<plugin type="net.coderbee.mybatis.batch.BatchParameterHandler"></plugin>-->
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:test"
userId="xxxx" password="xxxx" >
<!--开启读取数据库注释:为了把注释写到相对应的注解里面-->
<property name="remarksReporting" value="true"></property>
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="com.shsoft.platform.domain" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<!--设置注解,%s占位符,读取数据库字段注释(多个注解用;分隔),一个占位符读取数据库字段注释,第二数据库字段排序-->
<property name="annotation" value="@Excel(name = "%s", fixedIndex = %s);@ApiParam(value = "%s")"/>
<!--设置注解需要的包路径,多个用,分隔-->
<property name="annotationTargetPackage" value="cn.afterturn.easypoi.excel.annotation.Excel,io.swagger.annotations.ApiParam"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="com.shsoft.platform.dao.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.shsoft.platform.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成service,serviceImpl-->
<javaServiceGenerator targetPackage="com.shsoft.platform.service" targetProject="src/main/java"
implementationPackage="com.shsoft.platform.service">
</javaServiceGenerator>
<!--生成controller-->
<javaControllerGenerator targetPackage="com.shsoft.platform.ctrl" targetProject="src/main/java">
<property name="superClass" value="com.shsoft.platform.ctrl.BaseController"></property>
</javaControllerGenerator>
<!--生成对应表及类名,添加:enableInsertBatch(是否生成批量添加语句,目前只支持oracle),enableInsertBatchIgnore:批量添加语句中忽略的字段-->
<table tableName="SYSTEM_NOTICE" domainObjectName="SystemNotice" enableCountByExample="true" enableUpdateByExample="true"
enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="false" enableInsertBatch="true"
enableListParam="true">
<property name="enableInsertBatchIgnore" value="createDt"></property>
</table>
</context>
</generatorConfiguration>
到此为止,所有的配置已完毕,如果在ecplise中使用,则右击工程,maven build,添加命令mybatis-generator:generate,代码生成完毕!
MyBatis-generator自动生成代码详解:https://blog.csdn.net/isea533/article/details/42102297