MyBatis-Plus 自动生成代码
概要
- 需要使用的依赖: 主要是使用官网Generator包生成简单的代码,官网没有kotlin版本的示例
可以参考官网配置新增自己想要的属性 (这里是新的代码生成器) - 官网教程指南以及新(旧)
两版java生成器 https://baomidou.com/pages/779a6e/#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8 - 官网代码生成器配置细节https://baomidou.com/pages/981406/#%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE-datasourceconfig
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/68cc6ea4f73f51ae4a422faebdfc86c2.png)
代码
package com.duckstone.userapi.generator
import com.baomidou.mybatisplus.generator.FastAutoGenerator
import com.baomidou.mybatisplus.generator.config.OutputFile
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine
import java.util.*
import java.util.function.BiConsumer
import java.util.function.Consumer
fun main(args: Array<String>) {
generator()
}
fun generator() {
FastAutoGenerator.create("url", "username",
"password")
.globalConfig(Consumer {
it.author("zhangsan").enableKotlin()
.disableOpenDir()
.fileOverride()
.outputDir("E:\\new_pztWorkpace\\springboot-kotlin\\user-api\\src\\main\\kotlin")
})
.packageConfig(Consumer {
it.parent("com.duckstone.userapi")
.pathInfo(Collections.singletonMap(OutputFile.xml, "E:\\new_pztWorkpace\\springboot-kotlin\\user-api\\src\\main\\resources\\userapi"))
})
.strategyConfig(BiConsumer { scanner, builder ->
builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all"))!!)
.entityBuilder().enableLombok().build()
})
.templateEngine(FreemarkerTemplateEngine())
.execute()
}
fun getTables(tables: String): List<String?>? {
return if ("all" == tables) Collections.emptyList() else tables.split(",")
}