日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Mybatis Generator逆向工程的使用詳細(xì)教程

瀏覽:217日期:2023-10-23 17:54:29

一、MyBatis Generator簡介

MyBatis Generator(MBG)是MyBatis和iBATIS的代碼生成器。它將為所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代碼。它將審查數(shù)據(jù)庫表(或許多表),并將生成可用于訪問表的構(gòu)件。這減少了設(shè)置對象和配置文件以與數(shù)據(jù)庫表交互的初始麻煩。MBG尋求對簡單CRUD(創(chuàng)建,檢索,更新,刪除)的大部分?jǐn)?shù)據(jù)庫操作產(chǎn)生重大影響。您仍然需要為連接查詢或存儲(chǔ)過程手動(dòng)編寫SQL和對象代碼。MyBatis Generator將生成:

與表結(jié)構(gòu)匹配的Java POJO。這可能包括:

一個(gè)匹配表的主鍵的類(如果有主鍵) 一個(gè)匹配表的非主鍵字段的類(BLOB字段除外) 包含表的BLOB字段的類(如果表具有BLOB字段) 用于啟用動(dòng)態(tài)選擇,更新和刪除的類

這些類之間存在適當(dāng)?shù)睦^承關(guān)系。請注意,生成器可以配置為生成不同類型的POJO層次結(jié)構(gòu) - 例如,如果您愿意,可以選擇為每個(gè)表生成單個(gè)域?qū)ο蟆?/p>

MyBatis/iBATIS兼容的SQL Map XML文件。MBG為配置中的每個(gè)表上的簡單CRUD函數(shù)生成SQL。生成的SQL語句包括:

insert 插入 update by primary key 按主鍵更新 update by example (using a dynamic where clause) 通過條件更新(使用動(dòng)態(tài)where子句) delete by primary key 按主鍵刪除 delete by example (using a dynamic where clause) 按條件刪除(使用動(dòng)態(tài)where子句) select by primary key 按主鍵查詢 select by example (using a dynamic where clause) 按條件查詢(使用動(dòng)態(tài)where子句) count by example 按條件查詢記錄總數(shù)

根據(jù)表結(jié)構(gòu)的不同,這些語句有不同的變體(例如,如果表沒有主鍵,則MBG不會(huì)通過主鍵功能生成更新)。

適當(dāng)使用上述對象的Java客戶端類。Java客戶端類的生成是可選的。MBG將為MyBatis 3.x生成以下類型的Java客戶端:

適用于MyBatis 3.x映射器基礎(chǔ)結(jié)構(gòu)的映射器接口

MBG將為iBATIS 2.x生成以下類型的Java客戶端:

符合Spring框架的DAO 僅使用iBATIS SQL映射API的DAO。這些DAO可以生成兩種:通過構(gòu)造函數(shù)或setter注入提供SqlMapClient。 符合iBATIS DAO框架的DAO(iBATIS的可選部分,現(xiàn)在不推薦使用此框架,我們建議您使用Spring框架)

MyBatis生成器設(shè)計(jì)為在迭代開發(fā)環(huán)境中運(yùn)行良好,并且可以作為Ant任務(wù)或Maven插件包含在連續(xù)構(gòu)建環(huán)境中。迭代運(yùn)行MBG時(shí)需要注意的重要事項(xiàng)包括:

如果存在與新生成的XML文件同名的現(xiàn)有文件,MBG將自動(dòng)合并XML文件。MBG不會(huì)覆蓋您對其生成的XML文件所做的任何自定義更改。您可以反復(fù)運(yùn)行它,而不必?fù)?dān)心會(huì)丟失對XML的自定義更改。MBG將替換先前運(yùn)行中生成的任何XML元素。

MBG不會(huì)合并Java文件,它可以覆蓋現(xiàn)有文件或使用不同的唯一名稱保存新生成的文件。如果對生成的Java文件進(jìn)行更改并以迭代方式運(yùn)行MBG,則必須手動(dòng)合并更改。當(dāng)作為Eclipse插件運(yùn)行時(shí) ,MBG可以自動(dòng)合并Java文件。

二、MyBatis Generator使用

1、新建MBG的配置文件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> <!--導(dǎo)入屬性配置--> <properties resource='generator.properties'></properties> <!--指定特定數(shù)據(jù)庫的jdbc驅(qū)動(dòng)jar包的位置--> <!--<classPathEntry location='${jdbc.driverLocation}'/>--> <context targetRuntime='MyBatis3'> <!-- optional,旨在創(chuàng)建class時(shí),對注釋進(jìn)行控制,false生成注釋,true無注釋 --> <commentGenerator> <property name='suppressDate' value='false'/> <property name='suppressAllComments' value='false'/> </commentGenerator> <!--jdbc的數(shù)據(jù)庫連接 --> <jdbcConnection driverClass='${jdbc.driverClass}' connectionURL='${jdbc.connectionURL}' userId='${jdbc.userId}' password='${jdbc.password}'> </jdbcConnection> <!-- 默認(rèn)false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer, 為 true時(shí)把JDBC DECIMAL 和 NUMERIC 類型解析為java.math.BigDecimal --> <!-- 非必需,類型處理器,在數(shù)據(jù)庫類型和java類型之間的轉(zhuǎn)換控制--> <javaTypeResolver> <property name='forceBigDecimals' value='false'/> </javaTypeResolver> <!-- Model模型生成器,用來生成含有主鍵key的類,記錄類 以及查詢Example類 targetPackage 指定生成的model生成所在的包名 targetProject 指定在該項(xiàng)目下所在的路徑|指定生成到的工程名稱 --> <javaModelGenerator targetPackage='com.test.model' targetProject='.srcmainjava'> <!-- 是否允許子包,即targetPackage.schemaName.tableName --> <property name='enableSubPackages' value='false'/> <!-- 是否對model添加 構(gòu)造函數(shù) true添加,false不添加--> <property name='constructorBased' value='false'/> <!-- 是否對類CHAR類型的列的數(shù)據(jù)進(jìn)行trim操作 --> <property name='trimStrings' value='true'/> <!-- 建立的Model對象是否 不可改變 即生成的Model對象不會(huì)有 setter方法,只有構(gòu)造方法 --> <property name='immutable' value='false'/> </javaModelGenerator> <!--Mapper映射文件生成所在的目錄 為每一個(gè)數(shù)據(jù)庫的表生成對應(yīng)的SqlMapper文件 --> <sqlMapGenerator targetPackage='com.test.mapper' targetProject='.srcmainjava'> <property name='enableSubPackages' value='false'/> </sqlMapGenerator> <!-- 客戶端代碼,生成易于使用的針對Model對象和XML配置文件 的代碼 type='ANNOTATEDMAPPER',生成Java Model 和基于注解的Mapper對象 type='MIXEDMAPPER',生成基于注解的Java Model 和相應(yīng)的Mapper對象 type='XMLMAPPER',生成SQLMapper XML文件和獨(dú)立的Mapper接口 --> <javaClientGenerator targetPackage='com.test.mapper' targetProject='.srcmainjava' type='XMLMAPPER'> <property name='enableSubPackages' value='true'/> </javaClientGenerator> <!--需要映射的數(shù)據(jù)庫的表名--> <table tableName='t_userinfo' domainObjectName='UserInfo' enableCountByExample='false' enableUpdateByExample='false' enableDeleteByExample='false' enableSelectByExample='false' selectByExampleQueryId='false'> </table> </context></generatorConfiguration>

2、新建generator.properties文件

jdbc.driverLocation=C:mysql-connector-java-5.1.43.jarjdbc.driverClass=com.mysql.jdbc.Driverjdbc.connectionURL=jdbc:mysql://localhost:3306/mybatisjdbc.userId=rootjdbc.password=tiger

3、配置執(zhí)行mybatis generator操作,這里有兩種方式

第1種方式:

如果使用maven項(xiàng)目就可以省去編寫Java啟動(dòng)類,使用maven插件和配置文件pom.xml即可,插件啟動(dòng)maven-generator,在pom.xml中添加maven-generator插件

<plugins> <!--myBatis逆向工程插件--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> <configurationFile>${project.basedir}/src/main/resources/generatorConfig.xml</configurationFile> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> </dependency> </dependencies> </plugin></plugins>

點(diǎn)擊mybatis-generator:generate就能執(zhí)行mybatis generator了

Mybatis Generator逆向工程的使用詳細(xì)教程

第2種方式:

1、如果不是maven項(xiàng)目添加該mybatis-generator-core-1.3.2.jar,編寫main方法指向mybatis逆向工程,我給依賴粘貼到下面了

<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --><dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version></dependency>

2、修改generatorConfig.xml文件,放開注釋的該配置

<classPathEntry location='${jdbc.driverLocation}'/>

3、然后編寫測試類執(zhí)行

/** * 如果不是maven項(xiàng)目可以這樣生成 */public class MybatisGeneratorTest { public static void main(String[] args) throws InterruptedException, SQLException, IOException, InvalidConfigurationException, XMLParserException { List<String> warnings = new ArrayList<String>(); //生成的java文件是否覆蓋 boolean overwrite = true; //指定逆向工程配置文件 //File configFile = new File('E:projectmybatis-generatorsrcmainresourcesgeneratorConfig.xml'); InputStream resourceAsStream = MybatisGeneratorTest.class.getClassLoader().getResourceAsStream('generatorConfig.xml'); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(resourceAsStream); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback, warnings); myBatisGenerator.generate(null); }}

介紹完這兩種方式,查看數(shù)據(jù)表:

Mybatis Generator逆向工程的使用詳細(xì)教程

查看生成的實(shí)體類:​

Mybatis Generator逆向工程的使用詳細(xì)教程

TIP:可以看出如果實(shí)體類想要遵循駝峰命名規(guī)范,數(shù)據(jù)庫表字段名設(shè)計(jì)需要用'_'來劃分

查看生成的文件信息:​

Mybatis Generator逆向工程的使用詳細(xì)教程

TIP1:必須在<plugin></plugin>標(biāo)簽里添加數(shù)據(jù)庫驅(qū)動(dòng),在其他地方添加無效,如果不添加會(huì)報(bào)找不到驅(qū)動(dòng)錯(cuò)誤,如過不在該插件添加數(shù)據(jù)庫依賴的話可以使用 <classPathEntry location='${jdbc.driverLocation}'/> 來指定數(shù)據(jù)庫驅(qū)動(dòng)位置。

TIP2:如果你在使用mybatis generator插件執(zhí)行的時(shí)候報(bào)[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project mybatis-generator: <properties> resource generator.properties does not exist -> [Help 1]​

Mybatis Generator逆向工程的使用詳細(xì)教程

盡管你的 <properties resource='generator.properties'></properties>配置的沒有問題,但是還是找不到generator.properties,查看該配置,注釋掉​

Mybatis Generator逆向工程的使用詳細(xì)教程

該配置會(huì)改變generatorConfig.xml中讀取generator.properties文件的默認(rèn)路徑

TIP3:Mybatis Generator反向工程默認(rèn)不會(huì)覆蓋生成的*.java文件。也可以設(shè)置覆蓋生成的*.java文件,在反向工程插件mybatis-generator-maven-plugin添加該配置<overwrite>true</overwrite>則會(huì)覆蓋生成的*.java文件,如圖​

Mybatis Generator逆向工程的使用詳細(xì)教程

Mybatis Generator不會(huì)覆蓋你的mapper.xml文件,MBG會(huì)合并追加到mapper.xml和你自定義的存在一起,但是如果你修改MBG第一次默認(rèn)生成的SQL(MBG生成的CRUD),MBG會(huì)重新把自己生成的CRUD恢復(fù)默認(rèn),說白了,MBG只會(huì)覆蓋他自己生成的SQL,不會(huì)覆蓋你自定義的,你自定義的不變。。。如圖,他不會(huì)動(dòng)你的自定義SQL,只會(huì)覆蓋Mybatis反向工程自己生成的SQL,前提MBG自動(dòng)生成SQL語句的注釋要存在。​

Mybatis Generator逆向工程的使用詳細(xì)教程

在最常見的用例中,MyBatis Generator(MBG)由XML配置文件驅(qū)動(dòng)。配置文件告訴MBG

如何連接到數(shù)據(jù)庫 生成什么對象,以及如何生成它們 應(yīng)使用哪些表生成對象

官方MBG配置文件詳解地址:http://mybatis.org/generator/configreference/xmlconfig.html

附帶一個(gè)MBG的中文配置文件詳解:https://www.jianshu.com/p/e09d2370b796

更多Mybatis逆向工程的使用參考:http://www.mybatis.org/generator/index.html

總結(jié)

到此這篇關(guān)于Mybatis Generator逆向工程的使用詳細(xì)教程的文章就介紹到這了,更多相關(guān)Mybatis Generator逆向工程內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Mybatis 數(shù)據(jù)庫
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
婷婷激情综合| 亚洲欧洲一区二区天堂久久| 国产精品一级| 免费人成在线不卡| 亚洲福利国产| 久久国产免费| 欧美日韩视频免费观看| 91一区二区| 亚洲精品黄色| 日韩久久99| 国产一区 二区| 日韩av网站在线免费观看| 丝瓜av网站精品一区二区| 久久人人97超碰国产公开结果| 久久精品一本| 激情久久99| 亚洲91在线| 水野朝阳av一区二区三区| 午夜一级在线看亚洲| 国产视频一区欧美| 中文精品电影| 亚洲激情黄色| 美女亚洲一区| 国产欧美日韩精品一区二区免费| 精品成av人一区二区三区| 国产乱码精品| 色老板在线视频一区二区| 亚洲一区免费| 国产欧美成人| 亚洲黄页一区| 精品成人18| 亚洲人亚洲人色久| 精品一区三区| 都市激情国产精品| 欧美在线看片| 国产亚洲精品久久久久婷婷瑜伽| 欧美久久一区二区三区| 免费成人网www| 91福利精品在线观看| 欧美日韩在线观看视频小说| 国产精品三p一区二区| 在线亚洲免费| 亚洲小说欧美另类婷婷| 日韩av有码| 国产精品久久免费视频| 蜜桃久久av| 在线视频日韩| 亚洲激情中文在线| 91欧美日韩| 日本久久精品| 欧美日韩中文一区二区| 精品无人区麻豆乱码久久久| 蜜桃视频在线观看一区二区| 久久丁香四色| 久久精品99国产精品| 亚洲精品观看| 蜜臀国产一区二区三区在线播放| 日韩精品看片| 999国产精品永久免费视频app| 高清久久一区| 麻豆国产一区| 婷婷精品视频| 激情婷婷亚洲| 欧美在线综合| 日本不卡一二三区黄网| 911精品国产| 国产三级精品三级在线观看国产| 欧美一级一区| 日韩欧美中文字幕在线视频| 日韩久久一区| 精品国产一区二区三区噜噜噜| 国产精区一区二区| 久久婷婷国产| 免费一二一二在线视频| 精品日韩视频| 色婷婷精品视频| 不卡一区2区| 麻豆久久精品| 国产日韩精品视频一区二区三区| 亚洲午夜久久| 嫩呦国产一区二区三区av| 激情五月综合网| 欧美 日韩 国产精品免费观看| 国户精品久久久久久久久久久不卡| 亚洲一区二区成人| 国产剧情在线观看一区| 国产91一区| 日韩高清一区| 99成人在线视频| 欧美日韩一区二区国产| 久久香蕉国产| 国产精品对白| 日韩精品一卡二卡三卡四卡无卡| 国产精品久久久亚洲一区| 欧美一区二区三区高清视频| 欧美亚洲三区| 国产精品婷婷| 色天使综合视频| 日韩国产欧美三级| 国产精品毛片在线| 最新中文字幕在线播放 | 国产欧美日韩免费观看| 成人av二区| 久草免费在线视频| 日韩二区三区在线观看| 99国产精品私拍| 极品日韩av| 黑人精品一区| 国产一区二区三区成人欧美日韩在线观看 | 久久久天天操| 精品久久美女| 欧美精品导航| 国产精成人品2018| 国产精品一区二区三区美女| 欧美网站在线| 国产精品二区不卡| 久久中文精品| 国产精品麻豆成人av电影艾秋 | 麻豆精品视频在线| 日韩精品一二三| 波多视频一区| 亚洲精品一级二级| 日韩国产一区| 久久人人97超碰国产公开结果| 欧美午夜网站| 亚洲欧洲专区| 欧美日韩激情在线一区二区三区| 国产不卡人人| 三上悠亚国产精品一区二区三区| 国产精品videosex极品| 丝袜美腿亚洲一区二区图片| 久久精品电影| 99精品美女| 欧美精品激情| 久久亚洲不卡| 黄页网站一区| 亚洲三级在线| 欧美日韩亚洲一区三区| 国产精品亚洲成在人线| 久久97视频| 群体交乱之放荡娇妻一区二区| 欧美aa一级| 日韩高清一区| 国产99在线| 日韩精品水蜜桃| 99久久精品费精品国产| 国产激情在线播放| 91精品蜜臀一区二区三区在线 | 99精品99| 国产色99精品9i| 国产日本久久| 香蕉成人av| 蜜桃久久久久久| 日韩av网站在线免费观看| 91精品麻豆| 免费观看不卡av| 日韩av中文字幕一区二区三区| 麻豆国产欧美一区二区三区| 亚洲最新av| 92国产精品| 亚洲1区在线观看| 国产一区二区三区91| 亚洲电影有码| 亚洲欧美日本国产| 精品国产一区二区三区性色av| 欧美日韩精品免费观看视完整| 蜜臀av在线播放一区二区三区 | 国产福利电影在线播放| 日韩视频二区| 欧美在线黄色| 石原莉奈一区二区三区在线观看| 国产精品红桃| 日本亚洲不卡| 午夜国产欧美理论在线播放 | 久久不见久久见中文字幕免费| 亚洲一级特黄| 国产一精品一av一免费爽爽| 国产综合精品| 精品在线网站观看| 亚洲ww精品| 午夜在线精品偷拍| 91精品国产乱码久久久久久久| 国产精品乱战久久久| 亚洲高清影视| 免费欧美一区| 今天的高清视频免费播放成人| 欧美日中文字幕| 91久久久久| 欧洲av一区二区| 欧美日本久久| 婷婷精品在线| 在线国产一区二区| 综合日韩av| 麻豆精品久久| 久久国内精品视频| 日韩专区在线视频| 视频在线观看91| 亚洲香蕉视频| 久久aⅴ国产紧身牛仔裤| 免费精品视频|