Mybatis 逆向工程生成DTO
阿新 • • 發佈:2019-01-13
Mybatis逆向工程生成程式碼,詳細配置解析,實現dto的生成.
依賴包:可自適配
mybatis-3.2.7.jar
mybatis-generator-core-1.3.2.jar
mysql-connector-java-5.1.25-bin.jar
ojdbc14.jar
MybatisGenerator.java (逆向工程自動生成主類)
import java.io.File; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; public class MybatisGenerator { // 逆向工程自動生成 // 專案根路徑不要有中文,我的有中文,所以使用絕對路徑(.src下) public void generator() throws Exception { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("./src/generatorConfig.xml"); // Oracle/MySQL 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); } public static void main(String[] args) throws Exception { try { System.out.println("-----------執行開始----------"); MybatisGeneratorTest startServer = new MybatisGeneratorTest(); startServer.generator(); System.out.println("-----------執行結束----------"); } catch (Exception e) { e.printStackTrace(); System.out.println("-----------執行異常----------"); } } }
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="ojdbc14.jar" /> --> <!-- <classPathEntry location="mysql-connector-java-5.1.25-bin.jar" /> --> <context id="DB2Tables" targetRuntime="MyBatis3"> <property name="javaFileEncoding" value="UTF-8"/> <commentGenerator> <property name="suppressDate" value="true" /> <!-- 是否去除自動生成的註釋 true:是 : false:否 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--資料庫連線的資訊:驅動類、連線地址、使用者名稱、密碼 --> <!-- <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:test" userId="user" password="admin"> </jdbcConnection> --> <!-- <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/oa" userId="root" password="root"> </jdbcConnection> --> <!-- 預設false,把JDBC DECIMAL 和 NUMERIC 型別解析為 Integer,為 true時把JDBC DECIMAL 和 NUMERIC 型別解析為java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!--生成Model類存放位置 --> <javaModelGenerator targetPackage="cn.mis.dto.entity" targetProject=".\src"> <!-- enableSubPackages:是否讓schema作為包的字尾 --> <property name="enableSubPackages" value="true" /> <!-- 從資料庫返回的值被清理前後的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!--生成對映檔案存放位置 --> <sqlMapGenerator targetPackage="cn.mis.dto.maps" targetProject=".\src"> <!-- enableSubPackages:是否讓schema作為包的字尾 --> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!--生成DaoMapper類存放位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="cn.mis.dto.mapper" targetProject=".\src"> <!-- enableSubPackages:是否讓schema作為包的字尾 --> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!--生成對應表及類名,需要記住的一點是逆向工程無法生成關聯關係,只能生成單表操作 --> <table tableName="TB_USER" domainObjectName="TbUser"></table> <!-- <table tableName="TB_USER" domainObjectName="TbUser" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> --> </context> </generatorConfiguration>
執行結果:
轉載請註明出處!