詳解使用MyBatis Generator自動(dòng)創(chuàng)建代碼
這兩天需要用到MyBatis的代碼自動(dòng)生成的功能,由于MyBatis屬于一種半自動(dòng)的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手寫映射文件很容易出錯(cuò),所以可利用MyBatis生成器自動(dòng)生成實(shí)體類、DAO接口和Mapping映射文件。這樣可以省去很多的功夫,將生成的代碼copy到項(xiàng)目工程中即可。
1. 目錄說(shuō)明
使用自動(dòng)生成有很多方式,可以在eclipse中安裝插件,但是以下將要介紹的這種方式我認(rèn)為很輕松,最簡(jiǎn)單,不需要裝插件,只需要下幾個(gè)jar包即可,把它們放在一個(gè)目錄下面,如下圖:

src文件夾:生成的資源文件的位置
generationRun.bat:自動(dòng)生成 腳本
generatorConfig - 副本.xml:備份
generatorConfig.xml:配置文件
mybatis-3.2.6.jar:mybatis框架的jar包
mybatis-generator-core-1.3.2.jar:MyBatis生成器jar包
mysql-connector-java-5.1.30.jar:數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序jar包
2. 配置文件
<?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>
<!-- 數(shù)據(jù)庫(kù)驅(qū)動(dòng) (修改為自己的版本)-->
<classPathEntry location="mysql-connector-java-5.1.30.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自動(dòng)生成的注釋 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--數(shù)據(jù)庫(kù)鏈接URL,用戶名、密碼 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/dbname?characterEncoding=utf8" userId="username" password="password">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="POJO" targetProject="src">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="Mapping" targetProject="src">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="IDAO" targetProject="src">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表: tableName是數(shù)據(jù)庫(kù)中的表名或視圖名 domainObjectName是實(shí)體類名-->
<table tableName="tableName" domainObjectName="ObjectName" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
</table> <!-- **-->
</context>
</generatorConfiguration>
3. 執(zhí)行腳本
打開控制臺(tái),進(jìn)入目錄(我的:E:\bl-java\maven-server\MyBatis-generation-code),執(zhí)行腳本:
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite

或者可以寫了一個(gè)bat文件雙擊執(zhí)行腳本來(lái)完成。
@echo off ::注釋: 將這個(gè)腳本 復(fù)制到新建文本文件,文件后綴名 .bat 即可。 java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite echo src目錄下找到相應(yīng)的文件夾,每個(gè)表格都會(huì)對(duì)應(yīng)三個(gè)文件(實(shí)體類、接口、配置文件) PAUSE

4.一個(gè)異常:XML Parser Errors occurred
XML Parser Errors occurred: XML Parser Error on line 42: 元素類型為 "context" 的內(nèi)容不完整, 它必須匹配 "(property*,plugin*,commentGenerator?,jdbcConnection,javaTypeResolver?,javaModelGenerator,sqlMapGenerator?,javaClientGenerator?,table+)"。
原因:generatorConfig.xml配置文件 標(biāo)簽對(duì)位置不對(duì)
解決:標(biāo)簽位置在子標(biāo)簽對(duì)最后一個(gè)(無(wú)table標(biāo)簽也會(huì)報(bào)錯(cuò))
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot整合數(shù)據(jù)庫(kù)訪問(wèn)層的實(shí)戰(zhàn)
本文主要介紹了SpringBoot整合數(shù)據(jù)庫(kù)訪問(wèn)層的實(shí)戰(zhàn),主要包含JdbcTemplate和mybatis框架的整合應(yīng)用,具有一定的參考價(jià)值,感興趣的可以了解一下2022-03-03
Springboot整合redis實(shí)現(xiàn)發(fā)布訂閱功能介紹步驟
發(fā)布訂閱作為一種設(shè)計(jì)思想在很多開源組件中都有體現(xiàn),比如大家熟知的消息中間件等,可謂把發(fā)布訂閱這一思想體現(xiàn)的淋漓盡致了2022-09-09
Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之倉(cāng)庫(kù)管理系統(tǒng)的實(shí)現(xiàn)流程
這是一個(gè)使用了java+SSM+Maven+Bootstrap+mysql開發(fā)的倉(cāng)庫(kù)管理系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有一個(gè)倉(cāng)庫(kù)管理系統(tǒng)該有的所有功能,感興趣的朋友快來(lái)看看吧2022-01-01
Java中將 int[] 數(shù)組 轉(zhuǎn)換為 List分享
這篇文章主要介紹了Java中將 int[] 數(shù)組 轉(zhuǎn)換為 List分享的相關(guān)資料,需要的朋友可以參考下2022-12-12
springAop實(shí)現(xiàn)權(quán)限管理數(shù)據(jù)校驗(yàn)操作日志的場(chǎng)景分析
這篇文章主要介紹了springAop實(shí)現(xiàn)權(quán)限管理數(shù)據(jù)校驗(yàn)操作日志的場(chǎng)景分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
Java中使用開源庫(kù)JSoup解析HTML文件實(shí)例
這篇文章主要介紹了Java中使用開源庫(kù)JSoup解析HTML文件實(shí)例,Jsoup是一個(gè)開源的Java庫(kù),它可以用于處理實(shí)際應(yīng)用中的HTML,比如常見(jiàn)的HTML格式化就可以用它來(lái)實(shí)現(xiàn),需要的朋友可以參考下2014-09-09

