最近在學習mybatis框架,雖然已經簡化了一些Dao代碼,但是還想更上一層樓嗎?不再被基本的pojo層,controller層,service層,dao層基本重覆代碼所困惱嗎?這裡,讓我們來學習一下mybatis plus生成器吧,實現mybatis的逆向工程,最好是以springboot結合。 ...
最近在學習mybatis框架,雖然已經簡化了一些Dao代碼,但是還想更上一層樓嗎?不再被基本的pojo層,controller層,service層,dao層基本重覆代碼所困惱嗎?這裡,讓我們來學習一下mybatis plus生成器吧,實現mybatis的逆向工程,最好是以springboot結合。
一、導入maven依賴,註意版本,以及編寫生成器主類
<!--springboot使用mybatis-plus,所需要的2個依賴jar包--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>2.1.9</version> </dependency> <dependency> <!--mybatis自動裝配必須要--> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-autoconfigure</artifactId> <version>1.3.2</version> </dependency>
1 package com.ljg.generator; 2 3 4 import com.baomidou.mybatisplus.enums.IdType; 5 import com.baomidou.mybatisplus.generator.AutoGenerator; 6 import com.baomidou.mybatisplus.generator.config.DataSourceConfig; 7 import com.baomidou.mybatisplus.generator.config.GlobalConfig; 8 import com.baomidou.mybatisplus.generator.config.PackageConfig; 9 import com.baomidou.mybatisplus.generator.config.StrategyConfig; 10 import com.baomidou.mybatisplus.generator.config.rules.DbType; 11 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; 12 13 import java.sql.SQLException; 14 15 public class MyBatisPlusGenerator { 16 17 public static void main(String[] args) throws SQLException { 18 String tableName="user";//表名,記得創建號資料庫表哦 19 AutoGenerator mpg = new AutoGenerator(); 20 // 選擇 freemarker 引擎,預設 Veloctiy 21 //1. 全局配置 22 GlobalConfig config = new GlobalConfig(); 23 config.setActiveRecord(true) // 是否支持AR模式 24 .setAuthor("Ljg") // 作者 25 .setEnableCache(false)// XML 二級緩存 26 .setOutputDir("D:\\IdeaProject\\mybatis_plus_demo\\src\\main\\java") // 生成路徑 27 .setFileOverride(true) // 文件覆蓋 28 .setIdType(IdType.AUTO) // 主鍵策略 29 .setBaseResultMap(true)//生成基本的resultMap 30 .setBaseColumnList(true)//生成基本的SQL片段 31 /* 自定義文件命名,註意 %s 會自動填充表實體屬性! */ 32 .setMapperName("I%sDao") 33 .setXmlName("I%sDao") 34 .setServiceName("I%sService") 35 .setServiceImplName("%sServiceImpl") 36 .setControllerName("%sController"); 37 mpg.setGlobalConfig(config); 38 39 //2. 數據源配置 40 DataSourceConfig dsConfig = new DataSourceConfig(); 41 dsConfig.setDbType(DbType.MYSQL) // 設置資料庫類型 42 .setDriverName("com.mysql.jdbc.Driver") 43 .setUrl("jdbc:mysql://172.1.10.24/zz?useUnicode=true&characterEncoding=utf-8") 44 .setUsername("root") 45 .setPassword("123456"); 46 mpg.setDataSource(dsConfig); 47 48 //3. 策略配置globalConfiguration中 49 StrategyConfig stConfig = new StrategyConfig(); 50 stConfig.setCapitalMode(true) //全局大寫命名 51 .setDbColumnUnderline(true) // 指定表名 欄位名是否使用下劃線 52 .setNaming(NamingStrategy.underline_to_camel) // 資料庫表映射到實體的命名策略 53 //.setTablePrefix("tbl_")//表名首碼 54 .setInclude(tableName); // 需要生成的表 55 56 //4. 包名策略配置 57 PackageConfig pkConfig = new PackageConfig(); 58 pkConfig.setParent("com.ljg") 59 .setMapper("dao")//dao 60 .setService("service")//servcie 61 .setController("controller")//controller 62 .setEntity("po") 63 .setXml("mappper");//配置文件mapper/xml 64 65 //5. 整合配置 66 AutoGenerator ag = new AutoGenerator(); 67 ag.setGlobalConfig(config) 68 .setDataSource(dsConfig) 69 .setStrategy(stConfig) 70 .setPackageInfo(pkConfig); 71 72 //6. 執行 73 ag.execute(); 74 } 75 }
二、執行結果:
一鍵構成三層架構:controller層、service層,dao層,以及mybatis.xml文件。