spring-boot mybatis-plus代码生成器
spring-boot mybatis-plus代码生成器
由于我的jdk版本是1.7,所以只能使用2.x的版本,如果使用的jdk版本是1.8及以上,请使用3.x的版本
导入依赖
我使用的模板引擎是velocity,导入相应的依赖
<!-- 模板引擎 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
<!-- MP 核心库 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.3.3</version>
</dependency>
核心代码
public static void main(String[] args) {
// 需要构建一个 代码自动生成器 对象
AutoGenerator mpg = new AutoGenerator();
// 配置策略
// 1.全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir"); //获取当前路径,也可制定路径,生成代码后粘贴即可
gc.setOutputDir(projectPath + "/src/main/java"); // 代码生成路径
gc.setAuthor("xxx"); // 设置作者
gc.setOpen(true); // 生成完成后是否打开文件夹,方便粘贴
gc.setFileOverride(false); // 是否覆盖
gc.setServiceName("%sService"); // 去service的I前缀
gc.setIdType(IdType.AUTO); // 主键算法
// XML 二级缓存 (这个需要注意,测试时发现默认是开启的,如果不关闭而且项目有没有使用二级缓存的话会导致项目报错,将xml里的二级缓存删除即可)
/**
* 报错 : org.mybatis.caches.ehcache.LoggingEhcache
* <!-- 开启二级缓存 -->
* <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
* 将xml中这个删除即可
*/
gc.setEnableCache(false);
mpg.setGlobalConfig(gc);
// 2.设置数据源,
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=utf-8");
dsc.setDriverName("com.mysql.jdbc.Driver"); // mysql8使用 com.mysql.cj.jdbc.Driver
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setDbType(DbType.MYSQL); // 数据库类型
mpg.setDataSource(dsc);
// 3.包的设置 此项目最终生成的目录 (项目路径/src/main/java/com/test/base/test/)
PackageConfig pc = new PackageConfig();
pc.setModuleName("test");
pc.setParent("com.test.base");
pc.setEntity("entity");
pc.setMapper("mapper");
pc.setService("service");
pc.setController("controller");
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig sf = new StrategyConfig();
// 下划线命名的表名会自动转换为驼峰命名 (test_test1 ---> testTest1)
sf.setNaming(NamingStrategy.underline_to_camel);
// 这个转换的是列名
sf.setColumnNaming(NamingStrategy.underline_to_camel);
// 实体类添加lombok注解 (若不清楚请自行百度,需添加相关依赖)
sf.setEntityLombokModel(true);
// rest风格
sf.setRestControllerStyle(true);
// 需自动生成的表名,若需要添加,直接添加即可("","",""...)
sf.setInclude("user","test");
// sf.setLogicDeleteFieldName("deleted"); // 逻辑删除
// 自动填充配置(若需要手动填写时间,注释掉该配置)
TableFill gmt_create = new TableFill("create_time", FieldFill.INSERT); // 自动填充创建时间
TableFill gmt_modified = new TableFill("update_time", FieldFill.INSERT_UPDATE); // 自动填充修改时间
ArrayList<TableFill> tableFills = new ArrayList<>();
tableFills.add(gmt_create);
tableFills.add(gmt_modified);
sf.setTableFillList(tableFills);
// 乐观锁
//sf.setVersionFieldName("version");
sf.setControllerMappingHyphenStyle(true); // localhost:8080/hello_id_2
mpg.setStrategy(sf);
mpg.execute(); // 执行
}
最终效果
然后将xml文件放到需要的目录下即可