MyBatis Generator元件學習(反向生成) - 20181126
阿新 • • 發佈:2018-12-08
一.引言
- MyBatis-Plus(簡稱MP)是MyBatis增強工具,在原來基礎上不做改變,為簡化開發、提高效率而生。
- MyBatis Generator 是MyBatis 官方出品的一款,用來自動生成MyBatis的 mapper、dao、entity 的框架,讓我們省去規律性最強的一部分最基礎的程式碼編寫。
- 使用方式:命令列、Maven、Ant任務、Java程式碼;推薦Maven,因為整合和使用簡單
二.使用示例
- 新增依賴
配置pom.xml檔案,增加依賴和配置生成檔案(“generatorConfig.xml” 個性化配置)路徑
依賴:
org.mybatis.generator:根據資料庫中的表 反向生成實體,dao,mapper(也可使用oracle驅動)
<!-- mybatis-generator-core 反向生成java程式碼-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
外掛:
注意,如果本地庫中沒有驅動jar包,需要先放到依賴下載,再挪到外掛下邊
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
< artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
<configuration>
<!--允許移動生成的檔案 -->
<verbose>true</verbose>
<!-- 是否覆蓋 -->
<overwrite>true</overwrite>
<!-- 自動生成的配置、配置檔案的路徑 -->
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
</configuration>
</plugin>
- 新增配置檔案
根據上面在pom裡的配置,我們需要新增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="D:\maven\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/>-->
<context id="mysql" targetRuntime="MyBatis3">
<!--自動生成一些東西hashcode、序列化、tostring-->
<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"></plugin>
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>
<commentGenerator>
<!--是否支援日期格式 -->
<property name="suppressDate" value="true"/>
<!--是否去除自動生成註釋 true關閉自動生成註釋 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--資料庫連結地址賬號密碼-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/abc"
userId="root"
password="root"></jdbcConnection>
<!--java型別解析,用於一些比較特殊的資料型別-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model類存放位置包名和位置(生成實體類的包)-->
<javaModelGenerator targetPackage="com.abc.entity" targetProject="./src/main/java">
<!--是否合併包:類和包建立聯絡-->
<property name="enableSubPackages" value="true"/>
<!--去String型別中的空格-->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成對映檔案存放位置(生成mapper.xml檔案)-->
<sqlMapGenerator targetPackage="com.abc.mapper" targetProject="./src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao類存放位置(生成dao介面,其實dao介面也稱mapper)-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.abc.dao"
implementationPackage="com.abc.mapper" targetProject="./src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成對應表及類名-->
<!--
是否生成enableCountByExample 查詢條數
是否生成根據條件更新 enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"
-->
<!--生成哪些表、生成的實體類名稱名,多個表就多個table-->
<table tableName="abc_admin" domainObjectName="Admin"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
- 啟動外掛
右側的Maven中,Pligins — mybatis-generator — 啟動 bulidsuccess - 生成的介面內容
public interface AdminMapper {
//根據id刪除
int deleteByPrimaryKey(String id);
//插入(空插入為null)
int insert(Admin record);
//插入(空則不插入)
int insertSelective(Admin record);
//根據id查一個
Admin selectByPrimaryKey(String id);
//根據id修改(null則不會修改)
int updateByPrimaryKeySelective(Admin record);
//根據id修改(null也會修改)
int updateByPrimaryKey(Admin record);
//注意:官方不提供查詢所有操作
}
三.其他補充
- 設定實體和表的欄位對映(起別名)
在<table標籤中加:
<!--起別名:列名,實體屬性名(自定義成駝峰命名)-->
<columnOverride column="" property=""/>
- MyBatis通用mapper開發,對mybatis進一步封裝【 https://www.oschina.net/news/94347/mapper-4-0-released 】
- 建議安裝一款免費的IDEA外掛“Free MyBatis plugin”,可以實現dao到mapper xml對應方法的快速對映,點選任意一個快速調整到相應的方法,提高工作效率。(綠色箭頭,對應跳轉)