mybatis-plus代码快速生成【拿走即用】
MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MP提供两套生成方法,本着大道至简的理论,本文重点介绍一种快速生成的方法,一个Main方法即可。
一、依赖引入<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.1.0</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.3</version></dependency>
<dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency>
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.18</version></dependency>
 
-  
修改需生成的表名、前缀、模块名、作者等信息(最外部的static常量),执行main方法即可
 -  
controller可生成rest风格和普通风格,相关配置在 .controllerBuilder() 后
 -  
service相关自定义在.serviceBuilder() 后,比如修改默认文件名
 -  
同理,mapper和entity的相关配置分别紧跟.mapperBuilder()和.entityBuilder()
 
package com.code.codegenerator;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
/*** Description: <br/>* date: 2023/9/24 10:26<br/>** @author 小尘哥<br />*/public class CodeGenerator {
/*** 需要生成代码的数据库表名*/private static final String TABLE_NAME = "t_books";
/*** 表前缀,生成代码时可忽略*/private static final String TABLE_NAME_SUFFIX = "t_";/*** 模块名*/private static final String MODULE_PACKAGE = "book";/*** 作者*/private static final String AUTHOR = "小尘哥";
/*** 输出目录*/private static final String OUT_PATH = "D:\\genCode";
public static void main(String[] args) {FastAutoGenerator.create("jdbc:mysql://localhost:3306/mos_demo?characterEncoding=UTF-8&useUnicode=true&useSSL=false","root", "root")// 全局配置.globalConfig(builder -> {builder.author(AUTHOR) // 设置作者.commentDate("yyyy-MM-dd hh:mm:ss") //注释日期// .outputDir(System.getProperty("user.dir") + "/src/main/java") // 指定输出目录.outputDir(OUT_PATH) // 指定输出目录.disableOpenDir() //禁止打开输出目录,默认打开;})// 包配置.packageConfig(builder -> {builder.parent("com.mos.bzn." + MODULE_PACKAGE).mapper("dao"); // 设置父包名// .pathInfo(Collections.singletonMap(OutputFile.xml, "D:\\genCode\\mappers")); // 设置mapperXml生成路径})// 策略配置.strategyConfig(builder -> {builder.addInclude(TABLE_NAME) // 设置需要生成的表名.addTablePrefix(TABLE_NAME_SUFFIX) // 设置过滤表前缀// Entity 策略配置.entityBuilder().enableLombok() //开启 Lombok.enableFileOverride() // 覆盖已生成文件.naming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略:下划线转驼峰命.columnNaming(NamingStrategy.underline_to_camel) //数据库表字段映射到实体的命名策略:下划线转驼峰命// Mapper 策略配置.mapperBuilder().enableFileOverride() // 覆盖已生成文件// Service 策略配置.serviceBuilder().enableFileOverride() // 覆盖已生成文件.formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名,如 UserService.formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名,如 UserServiceImpl// Controller 策略配置.controllerBuilder().enableRestStyle().formatFileName("%sControl").enableFileOverride() // 覆盖已生成文件;}).execute();
}}
小结
“君子生非异也,善假于物也”。当需要生产率的时候使用高效的工具,当需要深度的时候去研究内部实现,合适的时候做合适的事,合适的技术实现合适的需求。
 
评论
