0.注意
1.文章代码
代码链接: 本文章的代码generator-test
2.生成内容
mybatis-plus的代码生成器会按照数据库表生成对应的实体类,以及实体类对应mapper,mapper.xml,service,serviceImpl,controller.所以我们不需要建立文件夹。
3.本次未生成内容
我使用的springboot是2.7.0与代码生成器生成的swagger发生冲突,所以不会生成swagger。本次只展示后端内容,所以也不会使用Freemarker引擎模板。
1.建立项目,添加依赖
建立一个SpringBoot项目,再添加如下依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.5.1</version>
</dependency>
<!-- 代码生成器的依赖-->
<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.2</version>
</dependency>
2.项目的配置文件
server:
port: 8082
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: mysql
url: jdbc:mysql://localhost:3306/blog-demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
mvc:
view:
prefix: /
suffix: .html
#标注mapper.xml文件的位置
mybatis-plus:
type-aliases-package: hhf.mybatisplusdemo.entity
mapper-locations: classpath:/hhf/generator/mapper/*.xml
3.建立代码生成器的类
public class Generator {
public static void main(String[] args) {
String sqlUrl = "jdbc:mysql://localhost:3306/blog-demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
String username = "root";
String password = "mysql";
String mapperXmlUrl = "E://codes//gs//generator-test//src//main//resources//hhf//generatortest//mapper";
FastAutoGenerator.create(sqlUrl, username, password)
.globalConfig(builder -> {
builder.author("hhf") // 设置作者
// .enableSwagger() //这里我们不适用swagger
.fileOverride() // 覆盖已生成文件
.outputDir("E://codes//gs//generator-test//src//main//java"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("hhf") // 设置父包名
.moduleName("generatortest") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, mapperXmlUrl)); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("student") // 设置需要生成的表名
.addTablePrefix(); // 设置过滤表前缀 可以设置"t_"
})
// .templateEngine(new FreemarkerTemplateEngine()) // 这里不使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
注意这里的指定输出目录+设置父包名+设置父包模块名 就是你要生成文件夹的存放目录
4.生成代码,以及需要添加的注解
运行Generator,生成文件
1.添加注解
1mapper接口需要添加注解
@Mapper
service接口需要添加注解
@Service
serviceImpl实现类需要添加注解
@Service("实现的接口名") //例如@Service("IStudentService")
SpringBoot运行类上加
@MapperScan("mapper包的相对路径")