org.yes.tools.generator.utils.MysqlUtils Maven / Gradle / Ivy
package org.yes.tools.generator.utils;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.IColumnType;
/**
* @author Co.
* @date 2022年 11月21日 10:50:58
*/
public class MysqlUtils {
/**
* 数据库驱动
*/
private static final String DATA_SOURCE_DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver";
private static String DEFAULT_OUT_PUT_DIR = System.getProperty("user.dir") + "\\code";
public static DataSourceConfig getDataSourceConfig(String dataSourceUrl, String sourceUserName, String sourcePwd) {
// 2. 数据源配置
DataSourceConfig dsConfig = new DataSourceConfig();
// 设置数据库类型
dsConfig.setDbType(DbType.MYSQL)
// 数据库驱动名称
.setDriverName(DATA_SOURCE_DRIVER_CLASS_NAME)
// 数据库连接url
.setUrl(dataSourceUrl)
// 数据库用户
.setUsername(sourceUserName)
// 数据库密码
.setPassword(sourcePwd);
dsConfig.setTypeConvert(new MySqlTypeConvert() {
@Override
public IColumnType processTypeConvert(GlobalConfig globalConfig, String s) {
if ("datetime".equalsIgnoreCase(s) || "timestamp".equals(s)) {
return DbColumnType.DATE;
}
return super.processTypeConvert(globalConfig, s);
}
});
return dsConfig;
}
public static GlobalConfig getGlobalConfig() {
// 1. 全局配置
GlobalConfig config = new GlobalConfig();
// 是否使用AR模式
config.setActiveRecord(false)
// 类作者名称
.setAuthor("Co.")
// 代码文件生成路径
.setOutputDir(DEFAULT_OUT_PUT_DIR)
// 文件是否覆盖 TODO
.setFileOverride(true)
// 主键策略
.setIdType(IdType.ASSIGN_ID)
// 设置Entity类的名称格式
.setEntityName("%sEntity")
// 设置Mapper类的名称格式
.setMapperName("%sDao")
// 设置Service实现类名称格式
.setServiceImplName("%sServiceImpl")
// 设置生成的service接口的名字的首字母是否为I
.setServiceName("%sService")
// 设置Controller类的名称格式
.setControllerName("%sController")
// 实体属性 Swagger2 注解
.setSwagger2(true)
// 使用 java.util.date
.setDateType(DateType.ONLY_DATE)
// 生成文件后是否打开文件
.setOpen(false)
// 在mapper.xml文件中生成基本的resultMap
.setBaseResultMap(false)
// 在mapper.xml文件中生成基本的SQL片段
.setBaseColumnList(false);
return config;
}
}