赞
踩
学了一下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); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。