gradle項目使用mybatis-generator自動生成代碼

前言

mybatis-generator工具是用來生成mybatis的model,mapper,dao持久層代碼。本文結合現在主流的構建工具是gradle,連接數據庫自動生成相應代碼。雖然mybatis-generator沒有提供gradle的插件,但是可以用gradle調用ant任務,因此,gradle也能間接啓動mybatis-generator。

環境

  • JDK 1.8
  • IntelliJ IDEA 2017.2.2
  • Gradle 3.5.0
  • mysql

配置

以shopmall-order訂單服務爲例,通過配置shopmall-order.gradle和generator.xml兩個文件,來自動生成相應entity、mapper、xml等。

shopmall-order.gradle

description = '''shopmall-order'''

dependencies {
    compile project(":shopmall-order-api")
    compile project(':shopmall-account-api')

}

//mybatis-generator.xml 配置路徑
// mac下是找不到 ./src 路徑的,需要全路徑,如下配置。windows則爲src/main/resources/generator.xml
mybatisGenerator {
    verbose = true
    configFile = 'src/main/resources/generator.xml'
}

generator.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="mybatis" targetRuntime="MyBatis3">

   <!--自動實現Serializable接口-->
   <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>

   <!-- 去除自動生成的註釋 -->
   <commentGenerator>
     <property name="suppressAllComments" value="true"/>
   </commentGenerator>

   <!--數據庫基本信息-->
   <jdbcConnection driverClass="com.mysql.jdbc.Driver"
     connectionURL="jdbc:mysql://10.223.25.82:3306/shopmall"
     userId="root"
     password="123456">
   </jdbcConnection>

   <javaTypeResolver>
     <property name="forceBigDecimals" value="true"/>
     <property name="useJSR310Types" value="true"/>
   </javaTypeResolver>

   <!--生成實體類的位置以及包的名字-->
   <!--同樣Mac用戶:targetProject 爲全路徑-->
   <javaModelGenerator targetPackage="com.ireeder.order.domain.entity"
     targetProject="src/main/java">
     <!-- enableSubPackages:是否讓schema作爲包的後綴 -->
     <property name="enableSubPackages" value="true"/>
     <!-- 從數據庫返回的值被清理前後的空格 -->
     <property name="trimStrings" value="true"/>
   </javaModelGenerator>

   <!--生成映射文件存放位置-->
   <!--同樣Mac用戶:targetProject 爲全路徑-->
   <sqlMapGenerator targetPackage="mapper"
     targetProject="src/main/resources">
     <!-- enableSubPackages:是否讓schema作爲包的後綴 -->
     <property name="enableSubPackages" value="false"/>
   </sqlMapGenerator>

   <!--生成Dao類存放位置,mapper接口生成的位置-->
   <!--同樣Mac用戶:targetProject 爲全路徑-->
   <javaClientGenerator type="XMLMAPPER" targetPackage="com.shopmall.order.domain.mapper"
     targetProject="src/main/java">
     <!-- enableSubPackages:是否讓schema作爲包的後綴 -->
     <property name="enableSubPackages" value="false"/>
   </javaClientGenerator>

   <table schema="shopmall" tableName="coupon_item"
     domainObjectName="CouponItemEntity" enableCountByExample="false"
     enableDeleteByExample="false" enableSelectByExample="false"
     selectByPrimaryKeyQueryId="true"
     enableUpdateByExample="false">
     <columnOverride column="updated_at" javaType="java.time.LocalDateTime"/>
     <columnOverride column="created_at" javaType="java.time.LocalDateTime"/>
     <columnOverride column="validity" javaType="java.lang.Boolean"/>
   </table>
 </context>
</generatorConfiguration>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章