MyBatis程式碼生成器可以幫助我們快速的構建一些固定的程式碼
重要:程式碼生成器生成的程式碼不能被修改,否則在新增新的欄位以後,再次執行程式碼生成器,修改後的內容可能會丟失
在專案中引入程式碼生成器的主要步驟:
- 新建生成器模組,引入相關外掛
<!-- mybatis generator 自動生成程式碼外掛 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<!--<configurationFile>src/main/resources/generator-config-member.xml</configurationFile>-->
<configurationFile>src/main/resources/generator-config-business.xml</configurationFile>
<!--<configurationFile>src/main/resources/generator-config-batch.xml</configurationFile>-->
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
</dependencies>
</plugin>
- 在新模組的resources下加入如下的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="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">
<!-- 自動檢查關鍵字,為關鍵字增加反引號 -->
<property name="autoDelimitKeywords" value="true"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!--覆蓋生成XML檔案-->
<plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
<!-- 生成的實體類新增toString()方法 -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
<!-- 不生成註釋 -->
<commentGenerator>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- 配置資料來源,需要根據自己的專案修改 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://rm-uf62v90x7t5hukv5dro.mysql.rds.aliyuncs.com/train_member?serverTimezone=Asia/Shanghai"
userId="train_member"
password="Member123">
</jdbcConnection>
<!-- domain類的位置 targetProject是相對pom.xml的路徑-->
<javaModelGenerator targetProject="../member/src/main/java"
targetPackage="com.jiawa.train.member.domain"/>
<!-- mapper xml的位置 targetProject是相對pom.xml的路徑 -->
<sqlMapGenerator targetProject="../member/src/main/resources"
targetPackage="mapper"/>
<!-- mapper類的位置 targetProject是相對pom.xml的路徑 -->
<javaClientGenerator targetProject="../member/src/main/java"
targetPackage="com.jiawa.train.member.mapper"
type="XMLMAPPER"/>
<!--<table tableName="member" domainObjectName="Member"/>-->
<table tableName="passenger" domainObjectName="Passenger"/>
</context>
</generatorConfiguration>
在匯入上述檔案的過程中,可能會出現URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
這個問題,解決方案參考這篇文章
- 執行上述的外掛,可以得到資料庫對應的實體類,並且生成mapper層常用的方法以及sql xml檔案