目录
Step1. 引入生成器依赖
Gradle
implementation("com.baomidou:mybatis-plus-generator:3.5.3.1")
implementation("org.apache.velocity:velocity-engine-core:2.3")
implementation("org.springframework.boot:spring-boot-starter-freemarker")
Maven
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
Step2.在 test 目录下随便创建一个类
Kotlin
复制以下内容并按自己需求修改:
import com.baomidou.mybatisplus.generator.AutoGenerator
import com.baomidou.mybatisplus.generator.config.DataSourceConfig
import com.baomidou.mybatisplus.generator.config.GlobalConfig
import com.baomidou.mybatisplus.generator.config.PackageConfig
import com.baomidou.mybatisplus.generator.config.StrategyConfig
fun main() {
AutoGenerator(
// 设置数据源
DataSourceConfig.Builder(
"url",
"username",
"password"
).build()
).run {
// 全局配置
global(
GlobalConfig.Builder()
// 启用 Kotlin
.enableKotlin()
/**
* 输出路径
* System.getProperty("user.dir") 得到的是这个项目的目录
* /src/main/kotlin 是你代码的存放目录,如果你是多模块项目,记得加上你的模块名
* 比如 service-oa-parent
* |- service-oa
* |- model
* 你想在 service-oa 中生成,那么应该填入: System.getProperty("user.dir") + "/service-oa/src/main/kotlin"
*/
.outputDir(System.getProperty("user.dir") + "/src/main/kotlin")
// 作者
.author("Goxiaogle")
// 设置生成完毕后是否展开你 idea 的目录,不影响结果
.disableOpenDir()
.build()
)
// 包信息配置
packageInfo(
PackageConfig.Builder()
/**
* 假定下列代码的目录结构为:
* com.goxiaogle.auth
* |- controller
* |- service
* |- impl
* |- mapper
* 则 com.goxiaogle 为父包,auth 为模块名
*/
// 设置父包
.parent("com.goxiaogle")
// 设置模块名
.moduleName("auth")
// 以下四个可以去掉,如果你的分包命名和他一样
// 设置 Controller 层包名,默认就是 controller
.controller("controller")
// 设置 Service 层包名,默认就是 service
.service("service")
// 设置 Mapper 层包名,默认就是 mapper
.mapper("mapper")
// 设置 Entity 包名,默认就是 entity
.entity("entity")
.build()
)
// 策略配置
strategy(
StrategyConfig.Builder()
// 设置要生成代码的数据库表名,可以设置多个,如 addInclude(a, b, c)
.addInclude("sys_user")
// 设置生成的 service 接口命名方式,默认是 IXxxService,这里改成 XxxService
// serviceBuilder() 方法建议在 build 后使用,此处偷懒直接用了
.serviceBuilder().formatServiceFileName("%sService")
.build()
// 设置其它几层的内容
// .entityBuilder()
// .controllerBuilder()
// .mapperBuilder().build()
)
// 执行
execute()
}
}
Java
复制以下内容并按自己需求修改:
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
public class CodeGet {
public static void main(String[] args) {
AutoGenerator generator = new AutoGenerator(
// 设置数据源
new DataSourceConfig.Builder("url", "username", "password").build()
);
generator.global(
// 全局配置
new GlobalConfig.Builder()
/*
* 输出路径
* System.getProperty("user.dir") 得到的是这个项目的目录
* /src/main/kotlin 是你代码的存放目录,如果你是多模块项目,记得加上你的模块名
* 比如 service-oa-parent
* |- service-oa
* |- model
* 你想在 service-oa 中生成,那么应该填入: System.getProperty("user.dir") + "/service-oa/src/main/kotlin"
*/
.outputDir(System.getProperty("user.dir") + "/src/main/java")
// 作者
.author("Goxiaogle")
// 设置生成完毕后是否展开你 idea 的目录,不影响结果
.disableOpenDir().build()
);
// 包信息配置
generator.packageInfo(
new PackageConfig.Builder()
/*
* 假定下列代码的目录结构为:
* com.goxiaogle.auth
* |- controller
* |- service
* |- impl
* |- mapper
* 则 com.goxiaogle 为父包,auth 为模块名
*/
// 设置父包
.parent("com.goxiaogle")
// 设置模块名
.moduleName("auth")
// 以下四个可以去掉,如果你的分包命名和他一样
// 设置 Controller 层包名,默认就是 controller
.controller("controller")
// 设置 Service 层包名,默认就是 service
.service("service")
// 设置 Mapper 层包名,默认就是 mapper
.mapper("mapper")
// 设置 Entity 包名,默认就是 entity
.entity("entity").build()
);
// 策略配置
generator.strategy(
new StrategyConfig.Builder()
// 设置要生成代码的数据库表名,可以设置多个,如 addInclude(a, b, c)
.addInclude("sys_user")
.serviceBuilder()
// 设置生成的 service 接口命名方式,默认是 IXxxService,这里改成 XxxService
// serviceBuilder() 方法建议在 build 后使用,此处偷懒直接用了
.serviceBuilder().formatServiceFileName("%sService").build()
// 设置其它几层的内容
// .entityBuilder()
// .controllerBuilder()
// .mapperBuilder().build()
);
// 执行
generator.execute();
}
}
Step3.运行并检查
生成完毕后发现多出了【Service接口、ServiceImpl实现类、Mapper接口、Mapper.xml映射文件、Controller类、Entity类】,至此结束