三:crud操作
1:使用mybatis-flex的代码生成器快速创建代码
使用的Maven依赖如下
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-spring-boot3-starter</artifactId>
<version>1.9.3</version>
</dependency>
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-processor</artifactId>
<version>1.9.3</version>
<scope>provided</scope>
</dependency>
使用的版本为springboot3。其他版本参考Maven 依赖 - MyBatis-Flex 官方网站。
2:在pom.xml同级目录下创建mybatis-flex.config文件并配置
# 开启 Mapper 自动生成
processor.mapper.generateEnable = true
# 开启 @Mapper 注解
processor.mapper.annotation = true
3:在启动项同级目录下创建mybatis-flex代码生成器配置
public class Codegen {
public static void main(String[] args) {
//配置数据源
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/badminton?characterEncoding=utf-8");
dataSource.setUsername("root");
dataSource.setPassword("yujiawei");
//创建配置内容,两种风格都可以。
// GlobalConfig globalConfig = createGlobalConfigUseStyle1();
GlobalConfig globalConfig = createGlobalConfigUseStyle2();
//通过 datasource 和 globalConfig 创建代码生成器
Generator generator = new Generator(dataSource, globalConfig);
//生成代码
generator.generate();
}
public static GlobalConfig createGlobalConfigUseStyle1() {
//创建配置内容
GlobalConfig globalConfig = new GlobalConfig();
//设置根包
globalConfig.setBasePackage("com.badminton.demo");
//设置表前缀和只生成哪些表
// globalConfig.setTablePrefix("tb_");
// globalConfig.setGenerateTable("tb_account", "tb_account_session");
//设置生成 entity 并启用 Lombok
globalConfig.setEntityGenerateEnable(true);
globalConfig.setEntityWithLombok(true);
//设置项目的JDK版本,项目的JDK为14及以上时建议设置该项,小于14则可以不设置
// globalConfig.setJdkVersion(17);
//设置生成 mapper
globalConfig.setMapperGenerateEnable(true);
//可以单独配置某个列
ColumnConfig columnConfig = new ColumnConfig();
columnConfig.setColumnName("tenant_id");
columnConfig.setLarge(true);
columnConfig.setVersion(true);
globalConfig.setColumnConfig("tb_account", columnConfig);
return globalConfig;
}
public static GlobalConfig createGlobalConfigUseStyle2() {
//创建配置内容
GlobalConfig globalConfig = new GlobalConfig();
//设置根包
globalConfig.getPackageConfig()
.setBasePackage("com.badminton.demo");
//设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表
// globalConfig.getStrategyConfig()
// .setTablePrefix("tb_")
// .setGenerateTable("tb_account", "tb_account_session");
//设置生成 entity 并启用 Lombok
globalConfig.enableEntity()
.setWithLombok(true)
.setJdkVersion(17);
//设置生成 mapper
globalConfig.enableMapper();
// 开启 Entity 的生成
globalConfig.enableEntity();
//开启service的生成
globalConfig.enableService();
//开启serviceImpl的生成
globalConfig.enableServiceImpl();
//开启controller的生成
globalConfig.enableController();
// 关闭 Entity 的生成
// globalConfig.disableEntity();
//可以单独配置某个列
/*
ColumnConfig columnConfig = new ColumnConfig();
columnConfig.setColumnName("tenant_id");
columnConfig.setLarge(true);
columnConfig.setVersion(true);
globalConfig.getStrategyConfig()
.setColumnConfig("tb_account", columnConfig);
*/
return globalConfig;
}
}
部分参考了MyBatis-Flex(一):快速开始_mbatisflex使用教程-CSDN博客
4:运行以上代码,代码生成器自动创建了所需要的文件
5:从数据量少的表开始crud,选择了site_info表。进入SiteInfoController,删除原先生成的功能。从增删改查的顺序实现功能。
6:为返回结果值规定统一的返回值code,message,data,此处直接把苍穹外卖的返回类型copy过来了
@Data
public class Result<T> implements Serializable {
private Integer code; //编码:0成功,1和其它数字为失败
private String msg; //错误信息
private T data; //数据
public static <T> Result<T> success() {
Result<T> result = new Result<T>();
result.code = 0;
return result;
}
public static <T> Result<T> success(T object) {
Result<T> result = new Result<T>();
result.data = object;
result.code = 0;
return result;
}
public static <T> Result<T> error(String msg) {
Result result = new Result();
result.msg = msg;
result.code = 1;
return result;
}
}