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