学了一下mybatis-plus,整体上比mybatis简化很多,也方便很多,懒人福利,哈哈,记录一下代码生成的代码,以后就用它了!
方式一:通过mybatis-plus-generator
引入依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plusgenerator</artifactId>
<version>3.3.1.tmp</version>
</dependency> <dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
然后创建main方法配置相应参数直接运行就出来了,其中的一些参数可以按自己需求更改
public class AutoGeneratorService{
public static void main(String[] args) {
//创建generator对象
AutoGenerator autoGenerator = newAutoGenerator();
//数据源
DataSourceConfig dataSourceConfig =new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setUrl("jdbc:mysql://ip:3306/db?useUnicode=true&characterEncoding=UTF-8");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("root");
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
autoGenerator.setDataSource(dataSourceConfig);
//全局配置
GlobalConfig globalConfig = newGlobalConfig();
//输出到那个目录
globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");
//生成之后是否打开文件夹
globalConfig.setOpen(false);
globalConfig.setAuthor("zheyi");
//生成service会自动service前面会自动带一个‘I’,不需要的话可以这样设置
globalConfig.setServiceName("%sService");
autoGenerator.setGlobalConfig(globalConfig);
//包信息
PackageConfig packageConfig = newPackageConfig();
packageConfig.setParent("com.zheyi.mybatisplus");
packageConfig.setModuleName("generator");
packageConfig.setController("controller");
packageConfig.setService("service");
packageConfig.setServiceImpl("service.impl");
packageConfig.setMapper("mapper");
packageConfig.setEntity("entity");
autoGenerator.setPackageInfo(packageConfig);
//配置策略
StrategyConfig strategyConfig = newStrategyConfig();
strategyConfig.setEntityLombokModel(true);
//设置驼峰命名,可以自动将数据库中的下划线方式转换成驼峰的形式,如user_name--->userName
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
autoGenerator.setStrategy(strategyConfig);
autoGenerator.execute();
}
}
方式二:通过mybatis-plus-generator-ui
引入依赖:
<dependency>
<groupId>com.github.davidfantasy</groupId>
<artifactId>mybatis-plus-generator-ui</artifactId>
<version>1.4.5</version>
</dependency>
配置数据库转换
public class MySqlTypeConvertEx extends MySqlTypeConvert {
@Override
public IColumnType processTypeConvert(GlobalConfig config, String fieldType) {
return TypeConvertsEx.use(fieldType)
.test(TypeConvertsEx.containsAny("char", "text", "json", "enum").then(STRING))
.test(TypeConvertsEx.contains("bigint").then(LONG))
.test(TypeConvertsEx.containsAny("tinyint", "bit").then(BYTE)).test(TypeConvertsEx.containsAny("tinyint(1)", "bit").then(BYTE))
.test(TypeConvertsEx.contains("int").then(INTEGER))
.test(TypeConvertsEx.contains("decimal").then(BIG_DECIMAL))
.test(TypeConvertsEx.contains("clob").then(CLOB))
.test(TypeConvertsEx.contains("blob").then(BLOB))
.test(TypeConvertsEx.contains("binary").then(BYTE_ARRAY))
.test(TypeConvertsEx.contains("float").then(FLOAT))
.test(TypeConvertsEx.contains("double").then(DOUBLE))
.test(TypeConvertsEx.containsAny("date", "time", "year").then(t -> toDateType(config, t)))
.or(STRING);
}
然后创建main方法配置参数直接执行:
public class GeberatorUIServer {
public static void main(String[] args) {
GeneratorConfig config = GeneratorConfig.builder().jdbcUrl("jdbc:mysql://127.0.0.1:3306/db")
.userName("root")
.password("root")
.driverClassName("com.mysql.cj.jdbc.Driver")
//数据库schema,POSTGRE_SQL,ORACLE,DB2类型的数据库需要指定
.schemaName("myBusiness")
//如果需要修改各类生成文件的默认命名规则,可自定义一个NameConverter实例,覆盖相应的名称转换方法:
.nameConverter(new NameConverter() {
/**
* 自定义Service类文件的名称规则
*/
@Override
public String serviceNameConvert(String tableName) {
return this.entityNameConvert(tableName) + "Service";
}
/**
* 自定义Controller类文件的名称规则
*/
@Override
public String controllerNameConvert(String tableName) {
return this.entityNameConvert(tableName) + "Controller";
}
}).typeConvert(new MySqlTypeConvertEx())
.basePackage("com.zheyi.admin.business")
.port(8888)
.build();
MybatisPlusToolsApplication.run(config);
}