jar包:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<scope>test</scope>
<version>3.5.4</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.4</version>
</dependency>
目录解析:
java
├─com.ycf.test
├─controller 存放controller目录
├─service
├─ 存放server接口
├─impl 存放server接口实现类
├─entity
├─bo 存放controller接收页面数据过滤的参数,比如分页信息
├─po 存放controller返回前台集合的实体类
├─vo 存放实体类目录
├─mapper 存放...mapper.java文件
resources
├─mapper 存放xxxMapper.xml文件
封装工具类
package com.ycf.test;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import java.sql.Types;
import java.util.Collections;
public class FastAutoGeneratorTest {
private static final String PROJ_PATH = "E:\\项目地址\\ycf-project\\";
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:oracle:thin:@127.0.0.1:521/xxx", "oracleName", "oraclePassword")
.globalConfig(builder -> {
builder.author("ycf")
.outputDir(PROJ_PATH + "src/main/java")
.dateType(DateType.ONLY_DATE)
.disableOpenDir()
;
})
.packageConfig(builder -> {
builder.parent("com.ycf")
.moduleName("test")
.entity("entity.po")
.pathInfo(Collections.singletonMap(OutputFile.xml, PROJ_PATH + "src/main/resources/mapper"))
;
})
.strategyConfig(builder -> {
builder
.addInclude("tableName")
.entityBuilder().logicDeleteColumnName("DELETED").idType(IdType.ASSIGN_UUID)
.enableFileOverride()
.enableLombok()
.addTableFills(new Column("DELETED", FieldFill.INSERT),
new Column("CREATE_BY", FieldFill.INSERT),
new Column("CREATE_DATE", FieldFill.INSERT),
new Column("UPDATE_BY", FieldFill.UPDATE),
new Column("UPDATE_DATE", FieldFill.UPDATE))
.controllerBuilder().enableRestStyle()
;
})
.templateConfig(builder ->
builder
.entity("/templates/entity.java"))
.dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
int typeCode = metaInfo.getJdbcType().TYPE_CODE;
int length = metaInfo.getLength();
int scale = metaInfo.getScale();
if (typeCode == Types.NUMERIC) {
if (scale == 0) {
if (length <= 9) {
return DbColumnType.INTEGER;
} else {
return DbColumnType.LONG;
}
} else if (length > 9) {
return DbColumnType.BIG_DECIMAL;
} else {
return DbColumnType.DOUBLE;
}
}
return typeRegistry.getColumnType(metaInfo);
}))
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
}