简介
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus 代码生成器是其核心功能之一,可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等代码,极大地提高了开发效率。
环境准备
在开始使用 MyBatis-Plus 代码生成器之前,确保你已经具备以下环境:
- JDK 1.8 或更高版本
- Maven 或 Gradle 构建工具
- 一个数据库实例(如 MySQL、PostgreSQL 等,教程使用Mysql)
- 一个 IDE(如 IntelliJ IDEA、Eclipse 等,教程使用IDEA)
添加依赖
为保证不出现意外的bug,建议使用跟教程相同版本的依赖
<dependencies>
<!-- springboot启动-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<!-- Mybatis-plus代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<!--velocity引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<!-- mysql驱动-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
配置数据库连接
在 application.properties 或 application.yml 文件中配置数据库连接信息:
# application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://ip地址:端口号/数据库名?&useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: username
password: password
# mybatis-plus配置
mybatis-plus:
mapper-locations: classpath:/mapper/*.xml # mapper路径
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 控制台日志输出
代码生成器配置
public class Generate {
// 启动方法,调用代码生成方法,传入数据库名,表名用于生成代码
public static void main(String[] args) {
Generation("database", "table");
}
public static void Generation(String databaseName, String... tableName) {
FastAutoGenerator.create("jdbc:mysql://ip地址:端口号/" +
databaseName + "?&useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai",
"root", "wyh112212!")
.globalConfig(builder -> {
builder.author("SparksFly") // 作者名
//启用swagger
.enableSwagger()
//指定输出目录
.outputDir(System.getProperty("user.dir") + "/src/main/java");
})
.packageConfig(builder -> {
builder.entity("entity")//实体类包名
.parent("com.wyh")//父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名
.controller("controller")//控制层包名
.mapper("mapper")//mapper层包名
//.other("dto")//生成dto目录 可不用
.service("service")//service层包名
.serviceImpl("service.impl")//service实现类包名
//自定义mapper.xml文件输出目录
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "/src/main/resources/mapper"));
})
.strategyConfig(builder -> {
//设置要生成的表名
builder.addInclude(tableName)
.addTablePrefix("t_")//设置表前缀过滤
.entityBuilder()
.enableLombok()
.enableChainModel()
.naming(NamingStrategy.underline_to_camel)//数据表映射实体命名策略:默认下划线转驼峰underline_to_camel
.columnNaming(NamingStrategy.underline_to_camel)//表字段映射实体属性命名规则:默认null,不指定按照naming执行
.idType(IdType.ASSIGN_ID)//添加全局主键类型
.formatFileName("%s")//格式化实体名称,%s取消首字母I,
.mapperBuilder()
.enableMapperAnnotation()//开启mapper注解
.enableBaseResultMap()//启用xml文件中的BaseResultMap 生成
.enableBaseColumnList()//启用xml文件中的BaseColumnList
.formatMapperFileName("%sMapper")//格式化Dao类名称
.formatXmlFileName("%sMapper")//格式化xml文件名称
.serviceBuilder()
.formatServiceFileName("%sService")//格式化 service 接口文件名称
.formatServiceImplFileName("%sServiceImpl")//格式化 service 接口文件名称
.controllerBuilder()
.enableRestStyle();
})
// .injectionConfig(consumer -> {
// Map<String, String> customFile = new HashMap<>();
// // 配置DTO(需要的话)但是需要有能配置Dto的模板引擎,比如freemarker,但是这里我们用的VelocityEngine,因此不多作介绍
// customFile.put("DTO.java", "/templates/entityDTO.java.ftl");
// consumer.customFile(customFile);
// })
.execute();
}
}
结束
至此,mybatis-plus的代码生成器配置已经全部完成,你可以直接运行main方法生成你的代码了,快去试试吧!
结语(废话)
MyBatis-Plus 代码生成器是一个强大的工具,可以帮助开发者快速生成 CRUD 代码,节省大量时间。通过简单的配置,你可以生成符合项目需求的代码,从而专注于业务逻辑的开发。记得在使用过程中,根据实际项目情况进行适当的调整和优化。
如果对你有帮助的话,不妨点个赞,点个关注再走吧!