利用Java和XML配置檔案執行MBG
阿新 • • 發佈:2018-11-27
利用Java和XML配置檔案執行MBG
- 新增相應jar包:mybatis-generator-core-xxx.jar
- 配置xml檔案:generatorConfig.xml
- 新增相應Java程式碼
generatorConfig.xml
<!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="testTables" targetRuntime="MyBatis">
<commentGenerator>
<!--去除註釋-->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/forest_blog"
userId="root"
password="root"/>
<javaModelGenerator targetPackage="com.syx.blog.entity" targetProject=".\src\main\java">
<property name="enableSubPackages" value="false"/>
<property name="trimString" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.syx.blog.mapper" targetProject=".\src\main\java">
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.syx.blog.mapper" targetProject=".\src\main\java">
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!--需要生成的表-->
<table tableName="user"/>
</context>
</generatorConfiguration>
Java程式碼:
List<String> warnings = new ArrayList<String>();
boolean overwrite=true;
//指向generator的XML配置檔案
File configFile = new File("generatorConfig.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配置檔案放到其他地方,執行java程式碼會提示找不到配置檔案。
- 如果將xml配置檔案放到專案目錄下(和src同級),提示這不是Generator的配置檔案。
我真的是 啊 煩死了。
問題解決1:
暫未找到解決辦法。。。
問題解決2:
問題出現在schema的dtd檔案的引入部分,我發現我的這部分程式碼的指向是在自己系統目錄下,而非jar包裡面,當替換成jar包裡面的dtd檔案,就不會報此類錯誤。
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"