springboot3.0整合mybatis-flex實(shí)現(xiàn)逆向工程的示例代碼
什么是mybatis逆向工程?
mybatis需要程序員編寫SQL語句。mybatis官網(wǎng)提供了逆向工程,針對(duì)對(duì)于單表可自動(dòng)生成mybatis所要執(zhí)行的代碼(mapper.java、mapper.xml、pojo…)
實(shí)際開發(fā)中常用的逆向工程方式:
由數(shù)據(jù)庫的表生成代碼,之所以強(qiáng)調(diào)“單表”兩個(gè)字,是因?yàn)閙ybatis逆向工程生成的Mapper接口所進(jìn)行的操作都是針對(duì)單表的。
引入基本依賴
<dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>5.0.1</version> </dependency> <dependency> <groupId>com.mybatis-flex</groupId> <artifactId>mybatis-flex-spring-boot-starter</artifactId> <version>1.5.3</version> </dependency> <dependency> <groupId>com.mybatis-flex</groupId> <artifactId>mybatis-flex-codegen</artifactId> <version>1.5.3</version> </dependency>
mybatis-flex yml配置
mybatis-flex: # 啟動(dòng)時(shí)檢查是否存在 MyBatis XML 文件,默認(rèn)不檢查 check-config-location: false # 是否控制臺(tái)打印 MyBatis-Flex 的 LOGO 及版本號(hào) global-config: print-banner: true normal-value-of-logic-delete: 0 deleted-value-of-logic-delete: 1
生成器,修改為自己的配置即可
package gen; import com.mybatisflex.codegen.Generator; import com.mybatisflex.codegen.config.GlobalConfig; import com.zaxxer.hikari.HikariDataSource; import org.junit.Test; /** * @author 程序員星星 * @date 2023/7/27 * @Description */ public class Codegen { //數(shù)據(jù)庫名和模塊名(這里數(shù)據(jù)庫名和模塊名一樣) private static final String databaseName = "five_cube_test"; //主機(jī) ip private static final String host = "192.168.157.129"; //數(shù)據(jù)庫用戶名 private static final String username = "root"; //數(shù)據(jù)庫密碼 private static final String password = "root"; //生成代碼的路徑 private static final String path = "D:\\myProject\\my\\test_mybatis_flex"; //表名 private static final String tableName = "user"; //作者 private static final String author = "lzx"; //父包模塊名 private static final String moduleName = "mybatisFlex"; //邏輯刪除字段 private static final String logicDeleteColumn = "status"; //樂觀鎖字段 private static final String versionColumn = "version"; @Test public void genCode() { //配置數(shù)據(jù)源 HikariDataSource dataSource = new HikariDataSource(); dataSource.setJdbcUrl("jdbc:mysql://" + host + ":3306/" + databaseName + "?characterEncoding=utf-8"); dataSource.setUsername(username); dataSource.setPassword(password); //創(chuàng)建配置內(nèi)容,兩種風(fēng)格都可以。 GlobalConfig globalConfig = createGlobalConfigUseStyle2(); //通過 datasource 和 globalConfig 創(chuàng)建代碼生成器 Generator generator = new Generator(dataSource, globalConfig); //生成代碼 generator.generate(); } public static GlobalConfig createGlobalConfigUseStyle2() { //創(chuàng)建配置內(nèi)容 GlobalConfig globalConfig = new GlobalConfig(); //設(shè)置根包 globalConfig.getPackageConfig() .setSourceDir(path + "/src/main/java") .setBasePackage("com." + author + "." + moduleName) .setMapperXmlPath(path + "/src/main/java/com/" + author + "/" + moduleName + "/mapper/xml"); globalConfig.getJavadocConfig() .setAuthor(author); //設(shè)置表前綴和只生成哪些表,setGenerateTable 未配置時(shí),生成所有表 globalConfig.getStrategyConfig() // .setTablePrefix("tb_") .setLogicDeleteColumn(logicDeleteColumn) .setVersionColumn(versionColumn) .setGenerateTable(tableName);//生成多個(gè)表的寫法"sys_user","sys_dept" //設(shè)置生成 entity 并啟用 Lombok globalConfig.enableEntity() .setWithLombok(true); //設(shè)置生成 mapper globalConfig.enableMapper(); //設(shè)置生成 mapper.xml globalConfig.enableMapperXml(); //設(shè)置生成service globalConfig.enableService(); globalConfig.enableServiceImpl(); //設(shè)置生成controller globalConfig.enableController(); //設(shè)置生成tableDef globalConfig.enableTableDef(); return globalConfig; } }
config配置類(可選)
package com.lzx.mybatisFlex.config; import com.mybatisflex.core.FlexGlobalConfig; import com.mybatisflex.core.audit.AuditManager; import com.mybatisflex.core.audit.ConsoleMessageCollector; import com.mybatisflex.core.audit.MessageCollector; import com.mybatisflex.spring.boot.MyBatisFlexCustomizer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Configuration; /** * @author 程序員星星 * @date 2023/6/8 * @Description */ @Configuration public class MyBatisFlexConfiguration implements MyBatisFlexCustomizer { private static final Logger logger = LoggerFactory.getLogger("mybatis-flex-sql"); @Override public void customize(FlexGlobalConfig flexGlobalConfig) { //開啟審計(jì)功能 AuditManager.setAuditEnable(true); //設(shè)置 SQL 審計(jì)收集器 MessageCollector collector = new ConsoleMessageCollector(); AuditManager.setMessageCollector(collector); //設(shè)置 SQL 審計(jì)收集器 AuditManager.setMessageCollector(auditMessage -> logger.info("{},{}ms", auditMessage.getFullSql(), auditMessage.getElapsedTime()) ); } }
到此這篇關(guān)于springboot3.0整合mybatis-flex實(shí)現(xiàn)逆向工程的示例代碼的文章就介紹到這了,更多相關(guān)springboot mybatis-flex逆向工程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 讀取網(wǎng)頁內(nèi)容的實(shí)例詳解
這篇文章主要介紹了java 讀取網(wǎng)頁內(nèi)容的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下2017-09-09springmvc Rest風(fēng)格介紹及實(shí)現(xiàn)代碼示例
這篇文章主要介紹了springmvc Rest風(fēng)格介紹及實(shí)現(xiàn)代碼示例,rest風(fēng)格簡(jiǎn)潔,分享了HiddenHttpMethodFilter 的源碼,通過Spring4.0實(shí)現(xiàn)rest風(fēng)格源碼及簡(jiǎn)單錯(cuò)誤分析,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11SpringBoot啟動(dòng)自動(dòng)終止也不報(bào)錯(cuò)的原因及解決
這篇文章主要介紹了SpringBoot啟動(dòng)自動(dòng)終止也不報(bào)錯(cuò)的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Java設(shè)計(jì)模式之狀態(tài)模式State Pattern詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之狀態(tài)模式State Pattern,狀態(tài)模式允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變的時(shí)候改變其行為。這個(gè)對(duì)象看上去就像是改變了它的類一樣2022-11-11SpringBoot中驗(yàn)證用戶上傳的圖片資源的方法
這篇文章主要介紹了在SpringBoot中驗(yàn)證用戶上傳的圖片資源,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09JavaWeb項(xiàng)目實(shí)現(xiàn)文件上傳動(dòng)態(tài)顯示進(jìn)度實(shí)例
本篇文章主要介紹了JavaWeb項(xiàng)目實(shí)現(xiàn)文件上傳動(dòng)態(tài)顯示進(jìn)度實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-04-04Java進(jìn)行反編譯生成.java文件方式(javap、jad下載安裝使用)
這篇文章主要介紹了Java進(jìn)行反編譯生成.java文件方式(javap、jad下載安裝使用),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12