最近在学习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文件。