溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MyBatis命令行實(shí)現(xiàn)逆向工程的示例

發(fā)布時(shí)間:2021-01-15 14:13:25 來源:億速云 閱讀:211 作者:小新 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章主要介紹了MyBatis命令行實(shí)現(xiàn)逆向工程的示例,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1.MyBatis逆向工程介紹

在開發(fā)過程中,經(jīng)常有需要使用MyBatis的情形,通常情況下,MyBatis構(gòu)建項(xiàng)目避免不了寫實(shí)體類、Dao接口、Mapper映射文件,這些工作都類似,具有一定的重復(fù)性,有的時(shí)候也容易出錯(cuò),于是就有人發(fā)明了【MyBatis逆向工程】->MyBatis Generator。MyBatis Generator(MBG)是一個(gè)代碼生成器, 可以生成我們所需要的dao.java、mapper.xml、pojo實(shí)體類文件,對(duì)于一些表較多的項(xiàng)目來說,能減少很多的工作量,來提高我們的效率。網(wǎng)上有很多類似的教程,可以在eclipse里安裝插件進(jìn)行生成,以及在IDEA中生成等,由于我使用命令行來實(shí)現(xiàn)的,所以這里我只介紹命令行的方式,也比較簡(jiǎn)單。

能夠生成的SQL語(yǔ)句包括:

  • insert

  • update by primary key

  • update by example (using a dynamic where clause)

  • delete by primary key

  • delete by example (using a dynamic where clause)

  • select by primary key

  • select by example (using a dynamic where clause)

  • count by example

這些語(yǔ)句的變化取決于表的結(jié)構(gòu)(例如,如果表沒有主鍵,則MBG不會(huì)通過主鍵功能生成更新)更多介紹可以參考文檔:http://mybatis.org/generator。

2.下載MyBatis Generator 文件

我是在github上下載的,GitHub地址:https://github.com/mybatis/generator/releases,推薦使用迅雷下載應(yīng)該會(huì)快一點(diǎn)。下載文件,并解壓,解壓后的文件目錄如下:
MyBatis命令行實(shí)現(xiàn)逆向工程的示例
查看解壓之后lib文件夾里的內(nèi)容,這里也就是我們需要使用到的jar包了
MyBatis命令行實(shí)現(xiàn)逆向工程的示例

3.配置generatorConfig.xml文件

在剛剛解壓的文件夾內(nèi)新建generatorConfig.xml文件,當(dāng)然,這個(gè)文件的名字是自己取的,那么這個(gè)文件有什么作用呢?該配置文件告訴MBG:

  • 如何連接到數(shù)據(jù)庫(kù)

  • 生成什么對(duì)象,以及如何生成它們

  • 哪些表應(yīng)用于對(duì)象生成

另外,我們還要做一些準(zhǔn)備工作:
1)找到自己的數(shù)據(jù)庫(kù)驅(qū)動(dòng)的jar包位置,為了方便演示,我這里把數(shù)據(jù)庫(kù)驅(qū)動(dòng)放到剛才解壓的目錄下面,我的是MySQL5.7
2) 新建一個(gè)空的src文件夾,用于存放生成的文件
MyBatis命令行實(shí)現(xiàn)逆向工程的示例
generatorConfig.xml文件內(nèi)容如下:
MyBatis命令行實(shí)現(xiàn)逆向工程的示例
generatorConfig.xml代碼

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),最好不要有中文字符,不然會(huì)找不到--><classPathEntry location="mysql-connector-java-5.1.27.jar" /><context id="DB2Tables" targetRuntime="MyBatis3"><commentGenerator><property name="suppressDate" value="true"/><property name="suppressAllComments" value="true"/></commentGenerator><!--數(shù)據(jù)庫(kù)鏈接地址賬號(hào)密碼--><jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/vhr" userId="root" password="123456"></jdbcConnection><javaTypeResolver>
	<property name="forceBigDecimals" value="false"/></javaTypeResolver><!--生成Model類存放位置--><javaModelGenerator targetPackage="com.zzti.vhr.model" targetProject="src">
	<property name="enableSubPackages" value="true"/>
	<property name="trimStrings" value="true"/></javaModelGenerator><!--生成映射文件存放位置--><sqlMapGenerator targetPackage="com.zzti.vhr.mapper" targetProject="src">
	<property name="enableSubPackages" value="true"/></sqlMapGenerator><!--生成DaoMapper類存放位置--><javaClientGenerator type="XMLMAPPER" targetPackage="com.zzti.vhr.mapper" targetProject="src"><property name="enableSubPackages" value="true"/></javaClientGenerator><!--生成對(duì)應(yīng)表及類名,需要記住的一點(diǎn)是逆向工程無法生成關(guān)聯(lián)關(guān)系,只能生成單表操作--><table tableName="adjustsalary" domainObjectName="AdjustSalary" 
	enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" 
	enableSelectByExample="false" selectByExampleQueryId="false"></table></context></generatorConfiguration>

需要配置的信息,這里我用紅框已經(jīng)圈了起來,需要配置的信息包括
數(shù)據(jù)庫(kù)信息;
生成的實(shí)體類的包名及targetProject也就是我們的生成文件要存放的位置,我的這里把它放到src目錄下;
生成mapper接口信息;
生成的mapper xml文件信息,這里我的mapper接口和xml文件在同一目錄下
所要生成的數(shù)據(jù)庫(kù)表配置信息,需要對(duì)哪些表進(jìn)行生成,在后面加上即可,表里的配置屬性具體含義可以查看文檔中的說明,參考這里

4.生成代碼

在命令行中需要執(zhí)行的命令如下:

 java -jar lib/mybatis-generator-core-1.3.1.jar -configfile generatorConfig.xml -overwrite

我們可以通過cd到當(dāng)前目錄,然后執(zhí)行上面命令即可,我這里把它放到bat文件中來執(zhí)行,新建start.bat文件,拷入上面命令
MyBatis命令行實(shí)現(xiàn)逆向工程的示例

雙擊執(zhí)行bat文件,在src目錄下即可看到生成的文件,然后將我們生成的文件拷貝到我們的項(xiàng)目工程中就可以使用啦!

ps:在生成后的文件中,可能某些字段或方法不能正確的創(chuàng)建,應(yīng)該是MySQL環(huán)境和插件版本不太一致的問題,可以在jdbcConnection里面加入以下屬性試一試:<property name="databaseSchemaUpdate" value="true" />
MyBatis命令行實(shí)現(xiàn)逆向工程的示例

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“MyBatis命令行實(shí)現(xiàn)逆向工程的示例”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI