MybatisPlus 核心代码生成器
mybatis 真好玩!
给别人读到代码
// 全局配置
GlobalConfig gc = new GlobalConfig().setOutputDir(System.getProperty("user.dir") + "/src/main/java").setAuthor("vdp").setOpen(false).setFileOverride(true).setServiceName("%sService").setIdType(IdType.ASSIGN_ID);
//数据源配置
DataSourceConfig dsc = new DataSourceConfig().setUrl("jdbc:mysql://localhost:3306/bs?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&userSSL=false").setDriverName("com.mysql.cj.jdbc.Driver").setUsername("root").setPassword("123456");
//包配置
PackageConfig pc = new PackageConfig().setModuleName("vdp").setParent("com.bs");
// 策略配置
StrategyConfig strategy = new StrategyConfig().setNaming(NamingStrategy.underline_to_camel).setColumnNaming(NamingStrategy.underline_to_camel).setLogicDeleteFieldName("deleted").setEntityLombokModel(true).setRestControllerStyle(true).setVersionFieldName("version").setControllerMappingHyphenStyle(true);
// 新建核心代码生成器,保存所有配置,设置生成器引擎并执行
new AutoGenerator().setGlobalConfig(gc).setDataSource(dsc).setPackageInfo(pc).setStrategy(strategy).setTemplateEngine(new VelocityTemplateEngine()).execute();
自己看的代码
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置 点进gc方法看源码,就知道怎么用了
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java")
.setAuthor("vdp")
.setOpen(false)
.setFileOverride(true)
// .setBaseResultMap(true)
// .setBaseColumnList(true)
.setServiceName("%sService")
// .setIdType(IdType.ASSIGN_ID)
// .setDateType(DateType.ONLY_DATE)//时间类型 工具包date,sql的date,java1.8的date
// .setDateType(DateType.TIME_PACK)//jdk 1.8的时间类,默认值
.setIdType(IdType.AUTO);
//数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/bs?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&userSSL=false");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("123456");
//包配置
PackageConfig pc = new PackageConfig();
// pc.setModuleName(scanner("模块名")).setParent("com.bs");
pc.setModuleName("vdp")
// .setEntity("pojo")
// .setMapper("dao")
// .setService("service")
// .setController("controller")
.setParent("com.bs");
// 自动填充策略
/* ArrayList<TableFill> tableFills = new ArrayList<>();
tableFills.add(new TableFill("user_create", FieldFill.INSERT));
tableFills.add(new TableFill("user_modified", FieldFill.INSERT_UPDATE));
tableFills.add(new TableFill("vehicle_create", FieldFill.INSERT));
tableFills.add(new TableFill("vehicle_modified", FieldFill.INSERT_UPDATE));*/
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel)
.setColumnNaming(NamingStrategy.underline_to_camel)
// .setInclude("type","user_info")//不设置生成所有表,设置后生成指定表
.setLogicDeleteFieldName("deleted")//逻辑删除策略,在实体类增加注解
.setEntityLombokModel(true)
.setRestControllerStyle(true)
.setVersionFieldName("version")// 乐观锁策略
// .setTableFillList(tableFills)//自动填充策略(数据库表有了就不用设置了)
.setControllerMappingHyphenStyle(true);//连接格式 vdp/userInfo ---> vdp/user-info
// 保存所有配置,设置生成器引擎并执行
mpg.setGlobalConfig(gc)
.setDataSource(dsc)
.setPackageInfo(pc)
.setStrategy(strategy)
.setTemplateEngine(new VelocityTemplateEngine())
.execute();
需要的依赖
springboot 项目到基本依赖就不需要粘贴在这里了吧
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-generator -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- 或许用不上到依赖 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>