1. 程式人生 > >利用Java和XML配置檔案執行MBG

利用Java和XML配置檔案執行MBG

利用Java和XML配置檔案執行MBG

  1. 新增相應jar包:mybatis-generator-core-xxx.jar
  2. 配置xml檔案:generatorConfig.xml
  3. 新增相應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);

存在的問題:

  1. 如果將xml配置檔案放到其他地方,執行java程式碼會提示找不到配置檔案。
  2. 如果將xml配置檔案放到專案目錄下(和src同級),提示這不是Generator的配置檔案。
  3. 我真的是 啊 煩死了。

    問題解決1:
    暫未找到解決辦法。。。
    問題解決2:
    問題出現在schema的dtd檔案的引入部分,我發現我的這部分程式碼的指向是在自己系統目錄下,而非jar包裡面,當替換成jar包裡面的dtd檔案,就不會報此類錯誤。

 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"