SpringBoot-02-整合mybatisplus代码生成器

mp为我们提供了代码生成器,可以根据数据库sql表生成crud,包括实体类
controller、service和mapper等,功能非常的强大。

代码模板:

通过网盘分享的文件:分享的一些资源
链接: https://pan.baidu.com/s/1j6_v-zyGQbqmx_zkWvFVMQ?pwd=rjs7 提取码: rjs7 
--来自百度网盘超级会员v4的分享

1.导入maven坐标

    <!--mbyatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!--mybatis-plus-generator 代码生成器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.4.1</version>
        </dependency>
        <!--beetl模板引擎-->
        <dependency>
            <groupId>com.ibeetl</groupId>
            <artifactId>beetl</artifactId>
            <version>3.15.4.RELEASE</version>
        </dependency>

2.复制生成代码

这是一个main方法的代码,运行即可。 代码添加了注释,根据自己的实际项目和需求去修改。

package com.njitzx;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
import com.baomidou.mybatisplus.generator.config.po.TableField;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine;
import com.baomidou.mybatisplus.generator.engine.BeetlTemplateEngine;
import com.google.common.base.CaseFormat;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class CodeGenerator {

    private static String projectPath = "E:\\NJITZX大三上\\backCode\\mavenLearn\\mp-generate";

    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator generator = new AutoGenerator();

        // 1、全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("周鑫");
        gc.setOpen(false);
        gc.setFileOverride(true); // 重新生成时文件是否覆盖
        gc.setServiceName("%sService"); // Service接口的命名方式
        gc.setDateType(DateType.ONLY_DATE);
        gc.setSwagger2(true);
        gc.setBaseResultMap(true);
        gc.setBaseColumnList(true);
        generator.setGlobalConfig(gc);

        // 2、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/springboot2?useUnicode=true&useSSL=false&characterEncoding=utf8");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("123456");
        generator.setDataSource(dsc);

        // 3、包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.njitzx");
        pc.setEntity("entity"); // entity 层
        pc.setMapper("mapper"); // mapper 层
        pc.setService("service"); // service层
        pc.setController("controller"); // controller 层
        generator.setPackageInfo(pc);

        // 4、自定义配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                // to do nothing
            }
        };

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setTablePrefix("t_"); // 过滤表前辍
        strategy.setNaming(NamingStrategy.underline_to_camel); //数据库表映射到实体的命名策略
        strategy.setColumnNaming(NamingStrategy.underline_to_camel); //数据库列映射到实体属性的命名策略
        strategy.setEntityLombokModel(true);  // lombok 模型
        strategy.setRestControllerStyle(true); //restful api风格控制器
        strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
        // 逻辑删除
        strategy.setLogicDeleteFieldName("is_deleted");
        // 自动填充
        List<TableFill> tableFillList = new ArrayList<>();
        tableFillList.add(new TableFill("create_time", FieldFill.INSERT));
        tableFillList.add(new TableFill("update_time", FieldFill.INSERT_UPDATE));
        strategy.setTableFillList(tableFillList);

        generator.setStrategy(strategy);

        // 6、设置解析模板
        generator.setTemplateEngine(new BeetlTemplateEngine() {

            // 获取主键
            String primaryKey = "";
            String primaryKeyUnderline="";

            @Override
            public AbstractTemplateEngine init(ConfigBuilder configBuilder) {
                AbstractTemplateEngine engine = super.init(configBuilder);
                // 映射文件放到resources目录下
                configBuilder.getPathInfo().put("xml_path", projectPath + "/src/main/resources/mapper/" + pc.getModuleName());
                return engine;
            }

            @Override
            public Map<String, Object> getObjectMap(TableInfo tableInfo) {
                for (TableField tableField : tableInfo.getFields()) {
                    if (tableField.isKeyFlag()) {
                        primaryKey = tableField.getPropertyName();
                        primaryKeyUnderline = tableField.getName();
                        break;
                    }
                }

                // 获取源码中的map
                Map objectMap = super.getObjectMap(tableInfo);
                // 额外添加两个键值对
                objectMap.put("entityCamel", CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_CAMEL, tableInfo.getEntityName()));
                objectMap.put("primaryKey", primaryKey);
                objectMap.put("primaryKeyUnderline", primaryKeyUnderline);
                return objectMap;
            }
        });

        // 7、执行生成
        generator.execute();
    }

}

3. 代码模板

mp为我们提供了一些模板,但是这些模板都比较简单,我们可以自己根据模板引擎的语法自定义模板,放在resources目录下面。
在这里插入图片描述
这里是btl 结尾的,和导入的maven坐标当好对应
在这里插入图片描述

4.运行生成器代码

在这里插入图片描述

在这里插入图片描述

自动生成基本的crud接口。

5.配置其他项

上面只是完成了最基础的crud,项目还需要配置其他的环境。
Result请求、想要分页还需要配置拦截器,包括yml下面的配置。

使用api接口可以进行测试,代码是完好的。
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot中使用Mybatis-Plus自动生成代码的步骤如下: 1. 首先,在pom.xml文件中添加Mybatis-Plus的依赖项。这包括mybatis-plus-generator、velocity-engine-core和lombok等依赖项。\[1\] 2. 创建一个Mapper接口,继承自BaseMapper,并指定实体类的泛型。在这个接口中,你可以定义自己的查询方法。\[3\] 3. 配置Mybatis-Plus的代码生成器。你可以使用代码生成器来生成Mapper、Model、Service和Controller层的代码。你可以使用代码或者Maven插件来快速生成代码。\[2\] 4. 运行代码生成器,生成所需的代码文件。 5. 在Spring Boot的配置文件中配置数据库连接信息和Mybatis-Plus的相关配置。 6. 在Service层中使用生成的Mapper接口进行数据库操作。 通过以上步骤,你可以在Spring Boot中使用Mybatis-Plus自动生成代码。这样可以大大减少手动编写重复的CRUD操作的工作量,并提高开发效率。 #### 引用[.reference_title] - *1* [SpringBoot中的自动代码生成 - 基于Mybatis-Plus](https://blog.csdn.net/Jalon2015/article/details/116026730)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [springboot整合mybatis-plus,代码自动生成](https://blog.csdn.net/qq_32784303/article/details/82964168)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渴求sspOffer的小周同学

您的支持是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值