利用mybatis-generator自動生成代碼

最近要開發一個網站,正好藉此機會重新學習一下Java Web編程SSM框架。

由於不太喜歡Hibernate(作爲程序員還是原生的SQL比較親切),用過一段時間的JdbcTemplate,把SQL語句作爲靜態變量放在DAO類的開頭,對於SQL語句需要拼接或者需要參數的情況,則需要結合靜態變量和方法體才能確定具體的SQL語句,非常的不優雅。於是乎,新項目選擇使用MyBatis。

Mybatis屬於半自動ORM,在使用這個框架中,工作量最大的就是書寫Mapping的映射文件,手動書寫很容易出錯也很討厭幸好我們可以利用Mybatis-Generator來幫我們自動生成實體類、DAO接口和Mapping映射文件。

生成代碼需要的文件和jar包:

所需文件和jar包

其中src爲生成文件保存目錄,generatorConfig.xml爲生成操作配置文件,mybatis-generator-core-1.3.2.jar是mybatis自動生成所需jar包,mysql-connector-java-5.1.16-bin.jar 爲訪問MySQL數據庫所需jar包,這裏我用的是MySQL數據庫,如果使用的其他數據庫,請使用對應的jar文件。

配置文件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="mysql-connector-java-5.1.16-bin.jar"/>
    <context id="DB2Tables"    targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--數據庫鏈接地址賬號密碼-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/bitnami_redmine" userId="root" password="root">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--生成Model類存放位置-->
        <javaModelGenerator targetPackage="com.ly.model" targetProject="src">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--生成映射文件存放位置-->
        <sqlMapGenerator targetPackage="com.ly.mapping" targetProject="src">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!--生成Dao類存放位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.ly.dao" targetProject="src">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!--生成對應表及類名-->
        <table tableName="users" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
        <table tableName="news" domainObjectName="News" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>
其中的配置信息都已經通過註釋說明,數據庫驅動,數據庫連接,生成類所在的包,要操作的表和生成的類名等根據實際情況修改即可。需要生成多個表對應文件則添加多個<table>配置項即可。

配置文件修改完成後,在CMD跳轉到該目錄下,執行以下生成命令即可:

java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite
可以在jar包所在文件夾中創建一個文本文件,將上述語句拷貝到文本文件中,將其修改爲 gen.bat 雙擊執行即可。

gen.bat內容如下,添加了pause語句,防止執行完直接退出。

java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite
pause
運行gen.bat


運行成功後會在src目錄下生成所需的實體類、DAO接口和Mapping映射文件。

此過程中,常見的錯誤如下:

1.XML Parser Error on line 13: 註釋中不允許出現字符串 "--"。

原因:文件中存在註釋。

解決方式:將註釋去掉即可。

 2.XML Parser Error on line 36: XML 文檔結構必須從頭至尾包含在同一個實體內。

原因:文件中存在註釋。

解決方式:將所有註釋去掉即可。

相關文件下載地址(包括兩個jar包、配置文件、src目錄、gen.bat腳本文件):http://download.csdn.net/detail/pyluyuan/9850141。

如果您喜歡本文,可以通過以下方式打賞微笑


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章