暑假学习springboot小项目day03

三: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;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值