MyBatis-Plus逆向工程——Generator的使用
有一位志同道合的朋友給我留言說,MyBatis-Plus的逆向工程跟接口繼承BaseMapper有什麼區別,我想瞭想,怎麼解釋都不合適,最後決定出此文章進行講解。
環境搭建
首先創建一張數據庫表
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) );
對應的數據如下
DELETE FROM user; INSERT INTO user (id, name, age, email) VALUES (1, 'Jone', 18, '[email protected]'), (2, 'Jack', 20, '[email protected]'), (3, 'Tom', 28, '[email protected]'), (4, 'Sandy', 21, '[email protected]'), (5, 'Billie', 24, '[email protected]');
創建SpringBoot項目
創建一個普通的SpringBoot項目,然後引入依賴,既然要跟數據庫打交道,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>
然後編寫一個類,直接執行即可!
class AutoCode { public static void main(String[] args) { // 1、全局配置 GlobalConfig globalConfig = new GlobalConfig();//構建全局配置對象 String projectPath = System.getProperty("user.dir");// 獲取當前用戶的目錄 globalConfig .setOutputDir(projectPath + "/mybatis-plus-01-start/src/main/java")// 輸出文件路徑 .setAuthor("微信搜一搜:賀賀學編程")// 設置作者名字 .setOpen(false)// 是否打開資源管理器 .setFileOverride(true)// 是否覆蓋原來生成的 .setIdType(IdType.AUTO)// 主鍵策略 .setBaseResultMap(true)// 生成resultMap .setBaseColumnList(true)// XML中生成基礎列 .setServiceName("%sService");// 生成的service接口名字首字母是否為I,這樣設置就沒有I // 2、數據源配置 DataSourceConfig dataSourceConfig = new DataSourceConfig();// 創建數據源配置 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")// 設置要映射的表 .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"; // 自定義配置會被優先輸出 focList.add(new FileOutConfig(templatePath) { @Override public String outputFile(TableInfo tableInfo) { // 自定義輸出文件名 , 如果你 Entity 設置瞭前後綴、此處註意 xml 的名稱會跟著發生變化!! return projectPath + "/mybatis-plus-01-start/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML; } }); cfg.setFileOutConfigList(focList); // 6、整合配置 AutoGenerator autoGenerator = new AutoGenerator();// 構建代碼生自動成器對象 autoGenerator .setGlobalConfig(globalConfig)// 將全局配置放到代碼生成器對象中 .setDataSource(dataSourceConfig)// 將數據源配置放到代碼生成器對象中 .setPackageInfo(packageConfig)// 將包配置放到代碼生成器對象中 .setStrategy(strategyConfig)// 將策略配置放到代碼生成器對象中 .setCfg(cfg)// 將自定義配置放到代碼生成器對象中 .execute();// 執行! } }
執行結果如下
代碼中的註釋比較多,我就不多說瞭
到此這篇關於MyBatis-Plus逆向工程——Generator的使用的文章就介紹到這瞭,更多相關MyBatis-Plus逆向工程內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- MyBatisPlus代碼生成器的原理及實現詳解
- mybatis plus generator 根據數據庫自動生成實體類的實現示例
- MybatisPlus代碼生成器的使用方法詳解
- Mybatis-Plus 全局配置無效的解決方案
- mybatis mybatis-plus-generator+clickhouse自動生成代碼案例詳解