代码生成器
代码生成器是个很好用的东西,能节省很多时间,并且编写代码用公共方法比较便捷。此代码生成器为mubatisplus的代码生成器,仅生成controller,server,mapper,xml文件不生成业务代码,仅供参考。
package com.sydata.fmimp.test.service;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.converts.DmTypeConvert;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MybatisPlusAutoGenerator {
//数据库url
private static final String url = "xxxxxxxx";
//数据库账号
private static final String username = "xxxxxx";
//密码
private static final String password = "xxxxxx";
public static void main(String[] args) {
List<String> tables = new ArrayList<>();
//多表同时生成
tables.add("user");
tables.add("roler");
DataSourceConfig.Builder builder1 = new DataSourceConfig.Builder(url, username, password);
builder1.typeConvert(new DmTypeConvert());
//模式名
builder1.schema("xxxxxx");
FastAutoGenerator.create(builder1)
.globalConfig(builder -> {
builder.author("lisi") //作者
.outputDir(System.getProperty("user.dir") + "\\src\\main\\java") //输出路径(写到java目录)
.enableSwagger() //开启swagger
.commentDate("yyyy-MM-dd")
.fileOverride(); //开启覆盖之前生成的文件
})
.packageConfig(builder -> {
builder.parent("com.itcast.cba.collection.infrastructure")
.moduleName("mybatisplus")
.entity("po")
.service("service")
.serviceImpl("serviceImpl")
.controller("controller")
.mapper("mapper")
.xml("mapper")
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude(tables)
.addTablePrefix("p_")
.serviceBuilder()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImpl")
.entityBuilder()
.enableLombok()
.logicDeleteColumnName("deleted")
.enableTableFieldAnnotation()
.controllerBuilder()
.formatFileName("%sController")
.enableRestStyle()
.mapperBuilder()
.enableBaseResultMap() //生成通用的resultMap
.superClass(BaseMapper.class)
.formatMapperFileName("%sMapper")
.enableMapperAnnotation()
.formatXmlFileName("%sMapper");
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
依赖版本
<!-- 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.2</version>
</dependency>
<!--模板依赖-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.29</version>
</dependency>
学习笔记仅供参考!