MyBatis Generator(MBG)的使用 MBG可以根據數據表生成對應的model、xml映射文件、mapper介面,只是簡單的生成,還需要根據需求修改。 1、下載jar包 https://github.com/mybatis/generator/releases 解壓後有3個jar包,只 ...
MyBatis Generator(MBG)的使用
MBG可以根據數據表生成對應的model、xml映射文件、mapper介面,只是簡單的生成,還需要根據需求修改。
1、下載jar包
https://github.com/mybatis/generator/releases
解壓後有3個jar包,只使用一個:
2、新建一個新的java項目,導入mybatis.jar、mybatis-generator-core.jar、資料庫驅動。
3、src下新建config.xml
http://mybatis.org/generator/configreference/xmlconfig.html
到官網複製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="/Program Files/IBM/SQLLIB/java/db2java.zip" />--> <!-- context配置環境 --> <context id="myMBG" targetRuntime="MyBatis3"> <!--配置生成的註釋--> <commentGenerator> <!-- 去掉註釋 --> <property name="suppressAllComments" value="true"/> <!-- 去掉註釋中的時間戳 --> <property name="suppressDate" value="true"/> </commentGenerator> <!-- 資料庫連接信息 --> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/my_db?serverTimezone=GMT" userId="chy" password="abcd"> </jdbcConnection> <!-- 配置jdbc——java之間的類型轉換 --> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 配置pojo類的生成規則 --> <javaModelGenerator targetPackage="com.chy.model" targetProject="src"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 配置xml映射文件的生成規則 --> <sqlMapGenerator targetPackage="com.chy.mapper" targetProject="src"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 配置mapper介面的生成規則 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.chy.mapper" targetProject="src"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 配置要使用的數據表,自帶的配置太繁瑣,將其註釋掉--> <table tableName="user_tb"/> <table tableName="goods_tb"/> <!-- <table schema="my_db" tableName="ALLTYPES" domainObjectName="Customer" >--> <!-- <property name="useActualColumnNames" value="true"/>--> <!-- <generatedKey column="ID" sqlStatement="DB2" identity="true" />--> <!-- <columnOverride column="DATE_FIELD" property="startDate" />--> <!-- <ignoreColumn column="FRED" />--> <!-- <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />--> <!-- </table>--> </context> </generatorConfiguration>
紅字部分是需要修改的。主要是修改資料庫的連接信息、文件的生成位置。
xml文件的詳細配置可參考官方文檔:http://mybatis.org/generator/configreference/xmlconfig.html
4、src下新建主類test.Test
http://mybatis.org/generator/running/runningWithJava.html
到官網複製代碼來改, 註意是xml那個,修改如下:
package test; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.exception.InvalidConfigurationException; import org.mybatis.generator.exception.XMLParserException; import org.mybatis.generator.internal.DefaultShellCallback; import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("src/config.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } }
只需註意xml文件的路徑是否正確。
5、運行主類,將生成的文件複製到要使用的項目中,根據需要修改。
只能生成簡單的代碼,複雜的還需要自己寫,比如關聯查詢。
文件名可隨意取,只要xml文件路徑對得上即可。常用generatorConfig.xml、Generator.java,覺得難寫可以使用簡單的單詞代替。
官網:http://mybatis.org/generator/index.html
github:https://github.com/mybatis/generator
帶GUI的代碼生成器:https://github.com/zouzg/mybatis-generator-gui