mybatisFlex代码生成:
首先:创建一个springboot项目
相关依赖:创建没用依赖的空项目可以直接复用
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatisFlex-->
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-spring-boot-starter</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
<!-- for test only -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatisFlex代码生成器依赖-->
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-codegen</artifactId>
<version>1.5.6</version>
</dependency>
<!--添加jdbc驱动-->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>4.0.3</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.32</version>
</dependency>
<!-- lombok -->
<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.3</version>
</dependency>
</dependencies>
编写一个生成工具类:
public class CodegenMybatisFlexCodegen {
public static void main(String[] args) {
//配置数据源
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/?characterEncoding=utf-8");
dataSource.setUsername("xxx");
dataSource.setPassword("xxx");
//创建配置内容,两种风格都可以。
// 默认配置
GlobalConfig globalConfig = createGlobalConfigUseStyle1();
// 指定配置
// GlobalConfig globalConfig = createGlobalConfigUseStyle2();
//通过 datasource 和 globalConfig 创建代码生成器
Generator generator = new Generator(dataSource, globalConfig);
//生成代码
generator.generate();
}
/**
* 生成原则1
* 直接生成
*
* @return
*/
public static GlobalConfig createGlobalConfigUseStyle1() {
//创建配置内容
GlobalConfig globalConfig = new GlobalConfig();
//设置根包
globalConfig.setBasePackage("com.example.mybatisflax");
//设置表前缀和只生成哪些表
// 前缀,没有不加
// globalConfig.setTablePrefix("tb_");
// 填写需要生成的表
globalConfig.getStrategyConfig()
// 生成所有表
.setGenerateSchema("demo");
// globalConfig.setGenerateTable("es_goods", "es_product", "es_product_store", "goods", "norms_value", "product", "store", "test_table", "wechat_user");
//设置生成 entity
globalConfig.setEntityGenerateEnable(true);
// 启用 Lombok
globalConfig.setEntityWithLombok(true);
//设置生成 mapper
globalConfig.setMapperGenerateEnable(true);
// 控制类
globalConfig.setControllerGenerateEnable(true);
// 服务类
globalConfig.setServiceGenerateEnable(true);
// 服务实现类
globalConfig.setServiceImplGenerateEnable(true);
// 文件
globalConfig.setMapperXmlGenerateEnable(true);
// 表定义辅助类
// globalConfig.setTableDefGenerateEnable(true);
// 注释配置
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String format = dateFormat.format(date);
globalConfig.getJavadocConfig()
.setAuthor("你的鼎鼎大名")
.setSince(format);
return globalConfig;
}
/**
* 生成原则2
* 自定义生成
*
* @return
*/
public static GlobalConfig createGlobalConfigUseStyle2() {
//创建配置内容
GlobalConfig globalConfig = new GlobalConfig();
//设置根包
globalConfig.getPackageConfig()
.setBasePackage("com.example.mybatisflax");
//设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表
globalConfig.getStrategyConfig()
// 生成所有表
.setGenerateSchema("demo");
// 制定表生成
//可以单独配置某个表
// .setGenerateTable("es_goods");
// .setGenerateTable("es_goods", "es_product", "es_product_store", "goods", "norms_value", "product", "store", "test_table", "wechat_user");
//设置生成 entity 并启用 Lombok
globalConfig.enableEntity().setWithLombok(true);
globalConfig.getMapperConfig()
.setClassPrefix("My")
.setClassSuffix("Entity");
//设置生成 mapper
globalConfig.enableMapper();
globalConfig.getMapperConfig()
.setClassPrefix("My")
.setClassSuffix("mapper");
// 设置生成Controller
globalConfig.enableController();
globalConfig.getControllerConfig()
.setClassPrefix("My")
.setClassSuffix("Controller")
.setRestStyle(true);
// 设置生成Service
globalConfig.enableService();
globalConfig.getServiceConfig()
.setClassPrefix("My")
.setClassSuffix("Service")
.setSuperClass(IService.class);
// 设置serviceImpl
globalConfig.enableServiceImpl();
globalConfig.getServiceImplConfig()
.setClassPrefix("My")
.setClassSuffix("ServiceImpl")
.setSuperClass(ServiceImpl.class);
// 生成MapperXml
globalConfig.enableMapperXml();
globalConfig.getMapperXmlConfig()
.setFilePrefix("My")
.setFileSuffix("Mapper");
// 生成配置 TableDefConfig
// globalConfig.enableTableDef();
// globalConfig.getTableDefConfig()
// .setClassPrefix("My")
// .setClassSuffix("Def");
// 注释配置
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String format = dateFormat.format(date);
globalConfig.getJavadocConfig()
.setAuthor("你的鼎鼎大名")
.setSince(format);
return globalConfig;
}
}
最后生成的效果:
这里小白已经调试过了,修改相关数据库就行了
《两种生成方式》
在这里插入
有兴趣的小伙伴可以试一下哦,很多东西还是得符合自己的业务哈