MyBatis-Plus代码生成

mybatis plus代码生成工具,可生成业务接口、mapper接口、实体类 原本想使用AutoGenerator 是 MyBatis-Plus 的官方代码生成器,尝试了一下,竟然报错,原因可能是MyBatis-Plus和mybatis-plus-generator 的版本不一致,因为我用的MyBatis-Plus 的版本是3.42 ,但是mybatis-plus-generator的3.4.2不知道怎么了,下载不下来,只能下载3.4.1,发现运行起来老是报错,还有一堆配置说明要看,于是自己手写生成代码的工具类,觉得更简单些。分享给大家,请多多指教。 pom文件引入ja. 阅读详情

导入jar包

  • <!-- mybatis-plus -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <!-- mybatis-plus 代码生成器 -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.2.0</version>
    </dependency>

配置文件

  • # DataSource Config
    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/vueblog?useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
        username: root
        password: 123456
    # mybatis-plus\u8BBE\u7F6E\u626B\u63CF\u4F4D\u7F6E
    mybatis-plus:
      mapper-locations: classpath*:/mapper/**Mapper.xml
    server:
      port: 8081
    

开启mapper扫描

  • import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    
    /**
     * @description: 开启mapper接口扫描,添加分页插件
     * @author: Mr.Li
     * @date: Created in 2020/6/13 10:42
     * @version: 1.0
     * @modified By:
     *
     * @MapperScan: 开启接口扫描
     */
    
    @Configuration
    @EnableTransactionManagement
    @MapperScan("com.futurell.mapper")
    public class MybatisPlusConfig {
        @Bean
        public PaginationInterceptor paginationInterceptor() {
            // 分页拦截器
            PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
            return paginationInterceptor;
        }
    }
  • 如果没有其他插件,那么可以开始使用 MyBatis-Plus

代码生成

  • import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
    import com.baomidou.mybatisplus.core.toolkit.StringPool;
    import com.baomidou.mybatisplus.core.toolkit.StringUtils;
    import com.baomidou.mybatisplus.generator.AutoGenerator;
    import com.baomidou.mybatisplus.generator.InjectionConfig;
    import com.baomidou.mybatisplus.generator.config.*;
    import com.baomidou.mybatisplus.generator.config.po.TableInfo;
    import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    /**
     * 执行 main 方法控制台输入模块表名 (如: m_user,m_blog) 回车自动生成对应项目目录中
     *
     * contorller、entity、mapper、service、service 中的 impl 以及 resources 中的 mapper
     *
     * @since 2020-06-13
     */
    public class CodeGenerator {
    
        /**
         * 读取控制台内容
         */
        public static String scanner(String tip) {
            Scanner scanner = new Scanner(System.in);
            StringBuilder help = new StringBuilder();
            help.append("请输入" + tip + ":");
            System.out.println(help.toString());
            if (scanner.hasNext()) {
                String ipt = scanner.next();
                if (StringUtils.isNotEmpty(ipt)) {
                    return ipt;
                }
            }
            throw new MybatisPlusException("请输入正确的" + tip + "!");
        }
    
        public static void main(String[] args) {
            // 代码生成器
            AutoGenerator mpg = new AutoGenerator();
    
            // 全局配置
            GlobalConfig gc = new GlobalConfig();
            String projectPath = System.getProperty("user.dir");
            gc.setOutputDir(projectPath + "/src/main/java");
            // gc.setOutputDir("D:\\test");
            gc.setAuthor("FutureLL");
            gc.setOpen(false);
            // gc.setSwagger2(true); 实体属性 Swagger2 注解
            gc.setServiceName("%sService");
            mpg.setGlobalConfig(gc);
    
            // 数据源配置
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setUrl("jdbc:mysql://localhost:3306/vueblog?useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC");
            // dsc.setSchemaName("public");
            dsc.setDriverName("com.mysql.cj.jdbc.Driver");
            dsc.setUsername("root");
            dsc.setPassword("123456");
            mpg.setDataSource(dsc);
    
            // 包配置
            PackageConfig pc = new PackageConfig();
            pc.setModuleName(null);
            pc.setParent("com.futurell");
            mpg.setPackageInfo(pc);
    
            // 自定义配置
            InjectionConfig cfg = new InjectionConfig() {
                @Override
                public void initMap() {
                    // to do nothing
                }
            };
    
            // 如果模板引擎是 freemarker
            String templatePath = "/templates/mapper.xml.ftl";
            // 如果模板引擎是 velocity
            // String templatePath = "/templates/mapper.xml.vm";
    
            // 自定义输出配置
            List<FileOutConfig> focList = new ArrayList<>();
            // 自定义配置会被优先输出
            focList.add(new FileOutConfig(templatePath) {
                @Override
                public String outputFile(TableInfo tableInfo) {
                    // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
                    return projectPath + "/src/main/resources/mapper/"
                            + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
                }
            });
    
            cfg.setFileOutConfigList(focList);
            mpg.setCfg(cfg);
    
            // 配置模板
            TemplateConfig templateConfig = new TemplateConfig();
    
            templateConfig.setXml(null);
            mpg.setTemplate(templateConfig);
    
            // 策略配置
            StrategyConfig strategy = new StrategyConfig();
            strategy.setNaming(NamingStrategy.underline_to_camel);
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);
            strategy.setEntityLombokModel(true);
            strategy.setRestControllerStyle(true);
            strategy.setInclude(scanner("表名, 多个英文逗号分割").split(","));
            strategy.setControllerMappingHyphenStyle(true);
            strategy.setTablePrefix("m_");
            mpg.setStrategy(strategy);
            mpg.setTemplateEngine(new FreemarkerTemplateEngine());
            mpg.execute();
        }
    }
  • 代码生成的前提是,要在数据库中建好我们需要的表
  • 运行 CodeGenerator 的 main 方法,在控制台输入表名,以 " , " 隔开,然后回车等待即可
  • 图片

测试

  • 在 UserController 中写个测试:
  • @RestController
    @RequestMapping("/user")
    public class UserController {
        @Autowired
        UserService userService;
        @GetMapping("/{id}")
        public Object test(@PathVariable("id") Long id) {
            return userService.getById(id);
        }
    }
    
避坑指南:Python模拟抖音扫码登录时,那些你可能会遇到的‘Referer’和‘Token’校验问题 本文深入解析Python模拟抖音扫码登录时常见的Referer校验与Token失效问题,提供五大陷阱的解决方案。从动态fp参数生成到Referer校验策略,再到Token生命周期管理,手把手教你破解抖音登录接口的反爬机制,助力开发者高效完成自动化登录。 阅读详情

相关推荐

论文阅读《Eigen-GNN: A Graph Structure Preserving Plug-in for GNNs》

好久没看论文了,感觉好生疏 关于这篇文章的大致脉络,这篇文章已经介绍过了。

且视他人之疑目如盏盏鬼火,大胆地去走你的夜路 461

用Mybatis-plus代码生成踩到的几个小坑

globalconfig的方法都是红的————导错包了。 globalconfig不生效————mybatis-plus-spring-boot-starter与generator的版本号不一致。不知道为什么阿里云源中没有3.4.2版本的generator。 freemarker报错——globalconfig没有setAuther。 ...

JielongYang的博客 433

Fluent新手必看:如何正确解读scaled residuals曲线(附常见问题排查)

本文详细解析了Fluent中scaled residuals曲线的解读方法及常见问题排查技巧。针对continuity残差居高不下、湍流模型收敛困难等典型问题,提供了网格质量检查、边界条件验证和求解策略调整的实用解决方案,帮助CFD新手快速掌握计算收敛性的关键判断标准。

weixin_28698059的博客 371

MyBatis-Plus - GlobalConfig 令你想象不到的失效情景 & 解决方案

MyBatis-Plus - GlobalConfig 令你想象不到的失效情景 & 解决方案

2434

Pytorch transformers tokenizer 分词器词汇表添加新的词语和embedding

NLP添加新词汇

7322

superpowers-中文使用说明

《obra/superpowers:AI辅助开发的流程纪律工具集》 摘要:obra/superpowers是一套面向AI辅助软件开发的系统化流程规范,包含14个核心技能,强调"先理解后行动"的纪律性开发方法。该工具集定义了从头脑风暴到代码评审的完整工作流,要求严格遵循测试驱动开发、子代理隔离执行等原则。核心特色包括:1) 任何实现前必须完成设计和评审;2) 采用红-绿-重构的TDD循环;3) 复杂任务通过独立子代理串行处理;4) 所有产出需经过双重验证(规格合规+代码质量)。该工具集特别注重文档化和可验证性

qq_22786633的博客 765

MybatisPlus自动生成代码

六、自动生成代码 引入依赖 <!--用于自动生成代码--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.0</version> </

qq_26440111的博客 188

告别U盘!在Ubuntu 22.04上从零搭建PXE网络装机服务器(支持UEFI/Legacy双启动)

本文详细介绍了在Ubuntu 22.04上搭建PXE网络装机服务器的完整流程,支持UEFI/Legacy双启动模式。通过配置DHCP、TFTP和HTTP服务,实现无需U盘的高效批量系统部署,解决传统安装方式的介质依赖、版本控制和时间成本问题,显著提升机房维护和设备部署效率。

weixin_42569329的博客 248

Mybatis-Plus

文章目录基本概念基本操作 基本概念 是什么? 是Mybatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发,提升效率而生。 特性 无侵入:只做增强不做改变,引入后不会对原工程产生影响 损耗小 强大的CRUD操作 支持Lambda表达式 支持主键自动生成 支持ActiveRecord模式 支持自定义全局通用操作 内置代码生成器 内置分页插件 分页插件支持多种数据库 内置性能分析插件 内置全局拦截插件 基本操作 主键生成策略 ...

weixin_45643653的博客 269

高通平台N4单路输入的720P相机预览

N4的一路720P Camera作为MIPI摄像头使用

llw21680的专栏 165

【基于深度学习的脑电图识别】数据集篇:THE TUH EEG CORPUS: A Big Data Resource for Automated EEG Interpretation

【基于机器学习的脑电图识别】数据集篇:脑电信号自动判读的大数据摘要: 摘要: 这个数据集包括超过 25000 个脑电图研究,包括一个神经学家对测试的解释,一个简短的病人病史和关于病人的人口统计信息,如性别和年龄。这是第一次有足够的数据来支持最先进的机器学习算法的应用。在这篇论文中,我们使用了3762个语料库的会话子集,展示了从原始脑电图信号数据预测脑电图的一些基本属性的初步实验结果。在闭环测试中,...

梁瑛平的博客 5615

Mybatis plus 代码生成器中的setOutputDir等方法不见了

但是你会发现报错更多了,这是因为在3.5版本之后,GlobalConfig对象,乃至生成依赖下的一切配置对象都采用静态内部类的方式创建了,必须要使用builder去构建,这时候你就应该发现,mybatis plus的代码生成版本差异和改动依赖太大了,最好生成好代码之后就删掉对应依赖和生成器代码,因为在后期维护和版本升级后很容易产生版本的冲突和意料之外的报错。代码生成器通常只能根据数据库表的结构和一些配置生成代码,对于业务逻辑的复杂性、代码的可维护性以及最佳实践等方面的考虑不足。

m0_69460676的博客 1437

手把手教你学Simulink--移动机器人多轮协同场景实例:基于Simulink的双轮差速PMSM轮毂电机协同驱动仿真

本文介绍了基于Simulink的双轮差速PMSM轮毂电机协同驱动仿真系统。针对移动机器人存在的电机参数不一致、负载分配不均等问题,提出主从同步+力矩补偿的协同控制策略。通过搭建包含运动学模型、PMSM电机模型和矢量控制器的仿真系统,实现了速度同步误差<0.005m/s、轨迹跟踪误差<0.8cm、能耗降低12.5%的优化效果。文章详细阐述了建模步骤、核心算法实现和性能验证,为移动机器人动力系统设计提供了实用参考方案。

MHD0815的博客 131

mybatis-plus代码生成工具

全局覆盖已有文件的配置已失效,已迁移到策略配置中

haohaounique的博客 2609

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MyBatis-Plus代码生成工具

mybatis代码生成器

qq_41700208的博客 653

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

基于Oracle的mybatis-plus及mybatis代码生成

基于Oracle的mybatis-plus及mybatis代码生成 在做一般项目的时候可以利用代码生成插件,快速搭建基于mvc模式的代码,提高开发效率,下面是我常用的两种插件 一、mybatis-plus代码生成 引入依赖 <!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId&gt

qq_45299533的博客 995

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Springboot + Mybatis-Plus代码生成指南

Springboot + Mybatis-Plus 代码生成指南,包含单元测试代码,生成的代码符合swagger参数规范。

m0_37978198的博客 1281

Mybatis Mybatis-plus 逆向代码生成

Mybatis 和 Mybatis-plus 逆向代码生成源码。 gitee源码路径: Mybatis :https://gitee.com/wt007/generator-sqlmap-custom.git Mybatis-plus:https://gitee.com/wt007/mybatis-plus-generator.git 新人不足,不喜勿喷,若有借鉴,还望海涵! ...

xtwu007的博客 526

解决mybatis plus代码生成报错

查看最新的代码生成文档,将代码放入自己的项目内启动后发现有这个报错。将自己的文件路径直接粘贴到代码内,

2302_79949163的博客 190

springboot3.x集成mybatis-plus代码生成工具

【代码】springboot3.x集成mybatis-plus代码生成工具。

记录点滴 1134

若依集成mybatis-plus插件,代码生成

文章摘要:本文详细介绍了MyBatis-Plus的集成配置过程。首先在pom文件中引入3.4.2版本的mybatis-plus-boot-starter依赖,然后在application.yml配置扫描路径和映射文件。接着创建MybatisPlusConfig类配置分页插件、乐观锁插件和阻断插件。最后修改代码生成器模块的模板文件,使生成的domain类继承BaseEntity并添加MyBatis-Plus注解,mapper接口继承BaseMapper。该配置实现了MyBatis-Plus的核心功能,包括自动

一起记录GIS学习 600

mybatis-plus 高效代码生成工具

我们在使用spring boot开发的时候,数据来源大多来自MySQL数据库,当我们要去操作数据库的时候,需要编写很多繁琐相同的配置,为了提高开发效率,我们可以借助代码生成工具将配置代码生成好然后只需要在里面填充相应的业务代码即可,接下来我们正式开始。 1. 添加Maven依赖 <dependency> <groupId>org.springframework...

厚积薄发 730

MyBatis-Plus 代码生成插件

MybatisPlus代码生成插件,根据数据库表结构生成PO、Mapper、Service等相关代码

f135917h的博客 552

springboot mybatis-plus 代码生成工具

springboot mybatis-plus 代码生成工具

北巷东东的专栏 1773

Mybatis-plus 代码生成插件使用

配置了entity实体中的@TableField注解。自定义Vo类的生成。

ahiai的博客 207

MyBatis-Plus Generator UI:可视化代码生成的终极指南

想要快速生成MyBatis-Plus框架的各类业务代码吗?MyBatis-Plus Generator UI就是你的最佳选择!这款强大的可视化工具通过Web界面让你轻松生成Entity、Mapper、Service、Controller等代码,大幅提升开发效率。无论你是新手还是资深开发者,都能在几分钟内完成繁琐的代码生成工作 🎯 ## ✨ 为什么选择MyBatis-Plus Generator

gitblog_00031的博客 922
上一篇: Element + Vue 创建前端项目(IDEA版)
下一篇: SpringBoot 跨域配置类
Future_LL
博客等级 码龄9年 215粉丝 255原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值