IDEA Maven Mybatis generator 自動生成代碼(實例講解)
MyBatis Generator
• 簡稱MBG,是一個專門為MyBatis框架使用者定制的代碼生成器,可以快速的根據表生成對應的映射文件,接口,以及bean類。
支持基本的增刪改查,以及QBC風格的條件查詢。
但是表連接、存儲過程等這些復雜sql的定義需要我們手工編寫
• 官方文檔地址 http://www.mybatis.org/generator/
• 官方工程地址 https://github.com/mybatis/generator/releases
MBG使用
Idea創建maven項目
配置pom.xml
添加依賴
<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency>
添加插件
<!--mybatis-generator-maven-plugin--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> <!-- /. -->
在resources源文件夾下面創建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:/Java/lib/mysql-connector-java-5.1.43.jar" /> <context id="test" targetRuntime="MyBatis3"> <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> <!-- 這個元素用來去除指定生成的注釋中是否包含生成的日期 false:表示保護 --> <!-- 如果生成日期,會造成即使修改一個字段,整個實體類所有屬性都會發生變化,不利於版本控制,所以設置為true --> <property name="suppressDate" value="true" /> <!-- 是否去除自動生成的注釋 true:是 : false:否 --> <property name="suppressAllComments" value="false" /> </commentGenerator> <!--數據庫鏈接URL,用戶名、密碼 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/ssm" userId="root" password="root"> </jdbcConnection> <javaTypeResolver> <!-- This property is used to specify whether MyBatis Generator should force the use of java.math.BigDecimal for DECIMAL and NUMERIC fields, --> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 指定javaBean的生成策略 文件夾自己定義--> <javaModelGenerator targetPackage="cn.itcast.domain" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- sqlMapGenerator:sql映射生成策略: --> <sqlMapGenerator targetPackage="cn.itcast.dao" targetProject=".\src\main\resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- javaClientGenerator:指定mapper接口所在的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="cn.itcast.dao" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 指定要逆向分析哪些表:根據表要創建javaBean --> <table tableName="account" domainObjectName="Account"></table> <!--<!– 要生成哪些表 –>--> <!--<table tableName="t_user" domainObjectName="user"--> <!--enableCountByExample="false" enableUpdateByExample="false"--> <!--enableDeleteByExample="false" enableSelectByExample="false"--> <!--selectByExampleQueryId="false"></table>--> </context> </generatorConfiguration>
特別注意的一點:一定要在配置文件中加入本地的mysql-connector-java-5.1.43-bin.jar,
下載地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java
我的配置如下: <classPathEntry location="D:/Java/lib/mysql-connector-java-5.1.43.jar" />
這個需要大家根據自己存放的路徑配置。
配置完成后,一定要點擊Build->Rebuild project,生成target文件夾,不然生產代碼的時候是生產在target文件下下面,沒有這個文件夾會報錯,當然也可以配置生成在其他文件夾下面。
MBG的配置文件(重要幾處配置)
1)jdbcConnection配置數據庫連接信息
2)javaModelGenerator配置javaBean的生成策略
3)sqlMapGenerator 配置sql映射文件生成策略
4)javaClientGenerator配置Mapper接口的生成策略
5)table 配置要逆向解析的數據表
tableName:表名
domainObjectName:對應的javaBean名
執行生成代碼
之后彈出運行配置框,為當前配置配置一個名稱,配置名稱Name
然后在 “Command line” 選項中輸入“mybatis-generator:generate -e”
這里加了“-e ”選項是為了讓該插件輸出詳細信息,這樣可以幫助我們定位問題。
點擊運行
生成成功