1. 引入Mybatis plus和Mybatis plus代码生成器的依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
2.导包无误后,创建代码自动生成工具类
使用之前记得把数据库和表创建好哦
/**
* 代码自动生成工具类
**/
public class CustomGenerator {
public static void generateCode() {
String packageName = "com.q.system"; // 包名称
boolean serviceNameStartWithI = false; // UserService, 设置成true: IUserService
generateByTables(
serviceNameStartWithI, packageName,
"user", "account", "xxxx" // 表名称
);
}
private static void generateByTables(boolean serviceNameStartWithI, String packageName, String... tableNames) {
GlobalConfig config = new GlobalConfig();
String dbUrl = "jdbc:mysql://127.0.0.1:3306/database"; // 数据库地址
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL)
.setUrl(dbUrl)
.setUsername("root")
.setPassword("root")
.setTypeConvert(new ITypeConvert() {
@Override
public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
String t = fieldType.toLowerCase();
if (t.contains("datetime")) {
return DbColumnType.DATE; // 使用自定义类型转换类,否则默认会把Date类转换为LocalDate
}
// 其它字段采用默认转换(非mysql数据库可以使用其它默认的数据库转换器)
return new MySqlTypeConvert().processTypeConvert(globalConfig, fieldType);
}
})
.setDriverName("com.mysql.cj.jdbc.Driver");
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig
// .setSuperEntityClass("com.q.test.entity.BaseEntity")
// .setTablePrefix(new String[]{"as_", ""}) // 表前缀
// .setSuperEntityColumns(new String[]{"created_at", "updated_at", "deleted_at"})
.setCapitalMode(true)
.setEntityLombokModel(true)
.setNaming(NamingStrategy.underline_to_camel)
.setEntityBuilderModel(true)
.setInclude(tableNames);
config.setActiveRecord(false)
.setOutputDir("src\\main\\java") // 创建的位置路径
.setEnableCache(false)
.setFileOverride(true);
if (!serviceNameStartWithI) {
config.setServiceName("%sService")
.setAuthor("Q"); // 作者名称
}
new AutoGenerator().setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(
new PackageConfig()
.setParent(packageName)
.setController("controller") // 控制层
.setMapper("mapper") // 数据层
.setEntity("model") // 实体层
).execute();
}
public static void main(String[] args) {
CustomGenerator.generateCode();
}
}