MybatisPlus代码生成器
MP提供代码生成的支持
pom依赖
3.0.6版本
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
3.4.1版本
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generate</artifactId>
<version>3.3.2</version>
</dependency>
基础工具类
public class CodeGenerator{
// 代码生成路径位置
private static String outPutDir = "D://CODEDEMO";
// 数据库连接
private static String dbUrl = "jdbc:oracle:thin:@host:port:DBName";
// 数据库驱动
private static String dbDriver = "oracle.jdbc.OracleDriver";
private static String username = "";
private static String password = "";
// 作者名
private static String AUTHOR = "yck";
// 模块名
private static String MODULE_NAME = "web";
// 全包名
private static String PARNT = "com.yck.mhsp";
// 数据库对应表明
private static String DB_TABLE = "MCK_USER";
//表前缀
private static String Table_Prefix = "MCK_";
pblic static void main(String args[]) {
generatCode();
}
private static void generatCode() {
// 1.创建
AutoGenerator generator = new AutoGenerator();
// 2.全局配置
GlobalConfig gc = new GlobalConfig();
// 输出路径
gc.setOutputDir(outPutDir);
// 作者
gc.setAuthor(AUTHOR);
// 生成后是否打开资源管理器
gc.setOpen(false);
// 重新生成文件时是否覆盖
gc.setFileOverride(true);
// 去掉service接口首字母
gc.setServiceName("%sService");
// Id策略
gc.setIdType(IdType.INPUT);
// Mapper.xml
gc.setBaseColumnList(true);
gc.setBaseResultMap(true);
//swagger2
gc.setSwagger2(false);
generator.setGlobalConfig(gc);
// 3.配置数据源
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl(dbUrl);
dsc.setDriverName(dbDriver);
dsc.setUsername(username);
dsc.setPassword(password);
dsc.setDbType(DbType.ORACLE);
generator.setDataSource(dsc);
// 4.包配置
PackageConfig pc = new PackageConfig();
// 模块名
pc.setModuleName(MODULE_NAME);
pc.setParent(PARENT);
pc.setController("controller");
pc.setEntity("entity");
pc.setService("service");
pc.setMapper(""mapper);
generator.setPackageInfo(pc);
// 5.策略配置
StrategyConfig strategyConfig = new StrategyConfig();
// 表名,帮助生成实体类mapper相应代码
strategyConfig.setInclude(DB_TABLE);
// 数据库表映射到实体类的命名策略
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
// 生成实体类时去掉表前的前缀
strategyConfig.setTablePrefix(Table_Prefix);
// 数据库字段映射到实体类的命名策略
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
// lombok
strategyConfig.setEntityLombokModel(true);
// restful
strategyConfig.setRestControllerStyle(true);
// url中驼峰命名转连字符
strategyConfig.setControllerMappingHyphenStyle(true);
generator.setStrategy(strategyConfig);
// 6.执行
generator.execute();
}
}
ID策略与数据库看需求而定,如果用的是ORACLE,并且自增的话,需要用到序列,实体类上加上注解
// 表对应的序列名以及主键的类型
@KeySequence(value = "对应的序列名", clazz = Double.class)
MP还支持自定义模板,后续完善之后会更新出来。
ps:内网开发,写笔记是真的难受,手敲代码,GAN!!!