官方参考地址
1.导入代码生成器Maven包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>latest-generator-version</version>
</dependency>
2.在项目test中添加生成器代码
注意:代码中dbname为你的数据库名,modulename为你项目中父包模块名
/**
* mybatis-plus 代码生成器(生成的时候需要修改表明)
*/
@Test
void codeGenerator() {
FastAutoGenerator
// 数据源配置
.create("jdbc:mysql://localhost:3306/dbname", "root", "root")
// 全局配置
.globalConfig(builder -> {
builder.author("hcw") // 设置作者
.outputDir(System.getProperty("user.dir") + "/src/main/java") // 指定输出目录
.commentDate("yyyy-MM-dd") //注释日期
.enableSwagger()
.disableOpenDir(); //禁止打开输出目录,默认:true
})
// 包配置
.packageConfig(builder -> {
builder.parent("com.hcw") // 设置父包名
.moduleName("modulename") // 设置父包模块名
.controller("controller")
.mapper("mapper")
.entity("pojo") // pojo 实体类包名,其它包名同理
.service("service")
.serviceImpl("service.impl")
.other("utils") // 自定义文件包名
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir")+"/src/main/resources/mapper")); // 设置mapperXml生成路径
})
// 策略配置
.strategyConfig(builder -> {
builder.addInclude(scanner("表名")) // 设置需要生成的表名
.addTablePrefix("t_", "c_") // 设置过滤表前缀
// entity 策略配置
.entityBuilder()
.enableLombok()
.logicDeleteColumnName("deleted") //逻辑删除字段名
.naming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略:下划线转驼峰命
.columnNaming(NamingStrategy.underline_to_camel) //数据库表字段映射到实体的命名策略:下划线转驼峰命
.addTableFills(
new Column("create_time", FieldFill.INSERT),
new Column("modify_time", FieldFill.INSERT_UPDATE)
) //添加表字段填充,"create_time"字段自动填充为插入时间,"modify_time"字段自动填充为插入修改时间
.enableTableFieldAnnotation() // 开启生成实体时生成字段注解
// mapper 策略配置
.mapperBuilder()
.superClass(BaseMapper.class) //设置父类
.formatMapperFileName("%sMapper") //格式化 mapper 文件名称
.enableMapperAnnotation() //开启 @Mapper 注解
.formatXmlFileName("%sMapper") //格式化 Xml 文件名称 如 UserMapper
// service 策略配置
.serviceBuilder()
.formatServiceFileName("%sService") // 如:UserService
.formatServiceImplFileName("%sServiceImpl") // 如:UserServiceImpl
// controller 策略配置
.controllerBuilder()
.formatFileName("%sController") // 如 UserController
.enableRestStyle(); //开启生成 @RestController 控制器
})
// 模板配置
// .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
// 执行
.execute();
}
/**
* <p>
* 读取控制台内容
* </p>
*/
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("请输入" + tip + ":");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotBlank(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}
网友评论