有一位志同道合的朋友给我留言说,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, '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');
 
创建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逆向工程内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!