MyBatis-Plus逆向工程——Generator的使用
有一位志同道合的朋友給我留言說,MyBatis-Plus的逆向工程跟接口繼承BaseMapper有什么區(qū)別,我想了想,怎么解釋都不合適,最后決定出此文章進行講解。
環(huán)境搭建
首先創(chuàng)建一張數(shù)據(jù)庫表
DROP TABLE IF EXISTS user; CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主鍵ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年齡', email VARCHAR(50) NULL DEFAULT NULL COMMENT '郵箱', PRIMARY KEY (id) );
對應的數(shù)據(jù)如下
DELETE FROM user; INSERT INTO user (id, name, age, email) VALUES (1, 'Jone', 18, 'test1@baomidou.com'), (2, 'Jack', 20, 'test2@baomidou.com'), (3, 'Tom', 28, 'test3@baomidou.com'), (4, 'Sandy', 21, 'test4@baomidou.com'), (5, 'Billie', 24, 'test5@baomidou.com');
創(chuàng)建SpringBoot項目
創(chuàng)建一個普通的SpringBoot項目,然后引入依賴,既然要跟數(shù)據(jù)庫打交道,connector肯定不能少
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.18</version> </dependency>
另外要使用mybatis-plus,當然也要引入該starter
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version> </dependency>
由于需要用到逆向工程,所以引入依賴
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> </dependency>
還需要一個模板引擎的依賴
<dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.1</version> </dependency>
為了方便起見,這里引入Lombok
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
然后編寫一個類,直接執(zhí)行即可!
class AutoCode { public static void main(String[] args) { // 1、全局配置 GlobalConfig globalConfig = new GlobalConfig();//構(gòu)建全局配置對象 String projectPath = System.getProperty("user.dir");// 獲取當前用戶的目錄 globalConfig .setOutputDir(projectPath + "/mybatis-plus-01-start/src/main/java")// 輸出文件路徑 .setAuthor("微信搜一搜:賀賀學編程")// 設(shè)置作者名字 .setOpen(false)// 是否打開資源管理器 .setFileOverride(true)// 是否覆蓋原來生成的 .setIdType(IdType.AUTO)// 主鍵策略 .setBaseResultMap(true)// 生成resultMap .setBaseColumnList(true)// XML中生成基礎(chǔ)列 .setServiceName("%sService");// 生成的service接口名字首字母是否為I,這樣設(shè)置就沒有I // 2、數(shù)據(jù)源配置 DataSourceConfig dataSourceConfig = new DataSourceConfig();// 創(chuàng)建數(shù)據(jù)源配置 dataSourceConfig .setUrl("jdbc:mysql://127.0.0.1:3306/mybatis_plus?userSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC") .setDriverName("com.mysql.cj.jdbc.Driver") .setUsername("root") .setPassword("root") .setDbType(DbType.MYSQL); // 3、包配置 PackageConfig packageConfig = new PackageConfig(); packageConfig .setParent("com.hzy") .setEntity("entity") .setController("controller") .setService("service") .setMapper("mapper"); // 4、策略配置 StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig .setCapitalMode(true)// 開啟全局大寫命名 .setInclude("user")// 設(shè)置要映射的表 .setNaming(NamingStrategy.underline_to_camel)// 下劃線到駝峰的命名方式 .setColumnNaming(NamingStrategy.underline_to_camel)// 下劃線到駝峰的命名方式 .setEntityLombokModel(false)// 是否使用lombok .setRestControllerStyle(true)// 是否開啟rest風格 .setControllerMappingHyphenStyle(true);// localhost:8080/hello_a_2 // 5、自定義配置(配置輸出xml文件到resources下) InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { // to do nothing } }; List<FileOutConfig> focList = new ArrayList<>(); String templatePath = "/templates/mapper.xml.vm"; // 自定義配置會被優(yōu)先輸出 focList.add(new FileOutConfig(templatePath) { @Override public String outputFile(TableInfo tableInfo) { // 自定義輸出文件名 , 如果你 Entity 設(shè)置了前后綴、此處注意 xml 的名稱會跟著發(fā)生變化??! return projectPath + "/mybatis-plus-01-start/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML; } }); cfg.setFileOutConfigList(focList); // 6、整合配置 AutoGenerator autoGenerator = new AutoGenerator();// 構(gòu)建代碼生自動成器對象 autoGenerator .setGlobalConfig(globalConfig)// 將全局配置放到代碼生成器對象中 .setDataSource(dataSourceConfig)// 將數(shù)據(jù)源配置放到代碼生成器對象中 .setPackageInfo(packageConfig)// 將包配置放到代碼生成器對象中 .setStrategy(strategyConfig)// 將策略配置放到代碼生成器對象中 .setCfg(cfg)// 將自定義配置放到代碼生成器對象中 .execute();// 執(zhí)行! } }
執(zhí)行結(jié)果如下
代碼中的注釋比較多,我就不多說了
到此這篇關(guān)于MyBatis-Plus逆向工程——Generator的使用的文章就介紹到這了,更多相關(guān)MyBatis-Plus逆向工程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Cloud Config與Bus整合實現(xiàn)微服務配置自動刷新功能
通過整合SpringCloud Config與Spring Cloud Bus,實現(xiàn)了微服務配置的自動刷新功能,這個機制允許一個微服務實例在配置更新時通過消息總線通知其他所有實例同步更新,從而保持配置的一致性并提升系統(tǒng)的運維效率2024-10-10在IntelliJ IDEA中創(chuàng)建和運行java/scala/spark程序的方法
這篇文章主要介紹了在IntelliJ IDEA中創(chuàng)建和運行java/scala/spark程序的教程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05Java實現(xiàn)優(yōu)雅停止線程的有效方法詳解
這篇文章主要為大家詳細如何安全有效停止 Java 線程的,確保多線程應用程序平穩(wěn)運行并實現(xiàn)最佳資源管理,感興趣的小伙伴可以跟隨小編一起學習一下2023-12-12Spring Boot實現(xiàn)分布式鎖的自動釋放的示例代碼
在實際開發(fā)中,我們可以使用 Redis、Zookeeper 等分布式系統(tǒng)來實現(xiàn)分布式鎖,本文將介紹如何使用 Spring Boot 來實現(xiàn)分布式鎖的自動釋放,感興趣的朋友跟隨小編一起看看吧2023-06-06簡述springboot及springboot cloud環(huán)境搭建
這篇文章主要介紹了簡述springboot及springboot cloud環(huán)境搭建的方法,包括spring boot 基礎(chǔ)應用環(huán)境搭建,需要的朋友可以參考下2017-07-07使用springmvc參數(shù)接收boolean類型參數(shù)的問題
這篇文章主要介紹了使用springmvc參數(shù)接收boolean類型參數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01