雖然 JPA 很方便,但是寫了十幾年的 SQL,在遇到比較複雜的狀況還是習慣直接用 MyBatis 寫SQL搞定比較直覺,但是 MyBatis 有不少固定的 Mapping 生成文件,手動去寫還蠻煩人的,這時就需要 MyBatis Generator 了
官網
https://mybatis.org/generator/
安裝 Eclipse Plugin
在 Eclipse Marketplace 搜尋 MyBatis Generator,直接安裝
建立一個 gradle 專案
build.gradle 增加 dependencies
請自行增加自己使用 db 的 jdbc driver,以下的程式是用 postgresql
dependencies {
implementation 'org.mybatis.generator:mybatis-generator-core:1.4.0'
implementation 'org.postgresql:postgresql:42.2.20' // 請自行置換 jdbc driver
}
如果有安裝 plugin ,在專案按右鍵選 New
執行後會產生 default MyBatis Generator Configuration File
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>
<context id="context1">
<jdbcConnection connectionURL="???" driverClass="???" password="???" userId="???" />
<javaModelGenerator targetPackage="???" targetProject="???" />
<javaClientGenerator targetPackage="???" targetProject="???" type="XMLMAPPER" />
<table schema="???" tableName="???">
<columnOverride column="???" property="???" />
</table>
</context>
</generatorConfiguration>
使用預設值會有一堆註解,一堆 example, count 之類的東西,基本我都用不到
以下是我習慣的設定,簡化很多,大家可以依自己的習慣設定
<?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="my" targetRuntime="MyBatis3">
<!-- 去除生成代碼的註解 -->
<commentGenerator>
<property name="suppressDate" value="false" />
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 資料庫連線設定 -->
<jdbcConnection driverClass="org.postgresql.Driver"
connectionURL="jdbc:postgresql://127.0.0.1:5432/onlytest" userId="???" password="???" />
<!-- 要產生的model位置,targetProject的值為專案的Source folder -->
<javaModelGenerator
targetPackage="projectname.vo.mg" targetProject="projectname\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 要產生的MyBatis Mapper位置 -->
<sqlMapGenerator
targetPackage="projectname.dao.mg" targetProject="projectname\src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 要產生的MyBatis Dao位置 -->
<javaClientGenerator
targetPackage="projectname.dao.mg" targetProject="projectname\src" type="XMLMAPPER">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 要生成的資料表 -->
<table schema="" tableName="???" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
點 generatorConfig.xml 按右鍵 選「Run MyBatis Generator」,程式就會產生在 targetProject 的路徑了