当前位置: 首页 > news >正文

使用mybatisPlus插件生成代码步骤及注意事项

使用mybatisPlus插件可以很方便的生成与数据库对应的PO对象,以及对应的controller、service、ImplService、mapper代码,生成这种代码的方式有很多,包括mybatis-plus提供的代码生成器,以及idea提供的代码生成器,无论哪一种只要掌握了方法并熟练操作,都可以达到相同的效果,这里介绍采用mybatisPlus插件自动生成代码。

第一步,先下载插件:

在setting-plugins中搜索这个插件并安装;

这个mybatisPlus指的不是baomidou里边的,而是一个单独的插件


 

第二步,设置数据库相关参数:

 

 这里需要注意,如果mysql数据库版本6.0及以上,在dbUrl中数据库名称后面需要添加上时区相关参数:

//jdbc:mysql://localhost:3306/xc_content?serverTimezone=Asia/Shanghai
?serverTimezone=Asia/Shanghai
//或者:
?serverTimezone=UTC

否则会报如下错误:

 数据库连接成功提示如下:

 第三步,生成代码

 点击Code Generator,弹出下图的对话框,对话框中自动列出数据库中可供生成代码的表格。

生成的代码格式如下:

 

package com.xuecheng.content.model.po;import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;/*** <p>* 课程分类* </p>** @author May* @since 2025-02-02*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("course_category")
@ApiModel(value="CourseCategory对象", description="课程分类")
public class CourseCategory implements Serializable {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "主键")@TableId(value = "id", type = IdType.AUTO)private String id;@ApiModelProperty(value = "分类名称")@TableField("name")private String name;@ApiModelProperty(value = "分类标签默认和名称一样")@TableField("label")private String label;@ApiModelProperty(value = "父结点id(第一级的父节点是0,自关联字段id)")@TableField("parentid")private String parentid;@ApiModelProperty(value = "是否显示")@TableField("is_show")private Integer isShow;@ApiModelProperty(value = "排序字段")@TableField("orderby")private Integer orderby;@ApiModelProperty(value = "是否叶子")@TableField("is_leaf")private Integer isLeaf;}

第四部,引入相应的依赖

        <swagger-annotations.version>1.5.20</swagger-annotations.version>   <org.projectlombok.version>1.18.8</org.projectlombok.version><mybatis-plus-boot-starter.version>3.4.1</mybatis-plus-boot-starter.version>//lombok依赖<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${org.projectlombok.version}</version></dependency>//swagger依赖<dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>${swagger-annotations.version}</version></dependency><!--存在mybatisplus注解添加相关注解保证不报错--><!--引入mybatisplus注解依赖和核心依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-annotation</artifactId><version>${mybatis-plus-boot-starter.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-core</artifactId><version>${mybatis-plus-boot-starter.version}</version></dependency>

第五步,生成的代码中注解的相关含义

//lombok中的注解,实现model类的getter和setter即toString方法
@Data
//lombok中的注解,实现model类的equals方法和hashcode方法
@EqualsAndHashCode(callSuper = false)
//lombok中的注解,默认为false,当为true时,对应字段的setter方法调用后会返回当前对象,
//如果不加没有返回值void
@Accessors(chain = true)
//MybatisPlus注解,用来将指定的数据库表和javabean进行映射,括号里边双引号内
//就是数据库中的表格名称,默认为value
//当实体类的类名和数据库表名不一致时,可以使用@TableName注解制定实体类对应的数据库表名
@TableName(value = "course_base")
//swagger注解,用在实体类上,用来对使用该注解的接口相关的实体类添加额外的描述信息,
//常和@ApiModelProperty注解配合使用
@ApiModel(value="CourseBase对象", description="课程基本信息")//作用在接口相关实体类的属性(字段)上的注解,用来对具体的接口相关实体类中的
//参数添加额外的描述信息,// 除了可以和@ApiModel注解关联使用,也会单独拿出来用@ApiModelProperty(value = "主键")//当实体类的主键字段和数据库表的逐渐字段不一致,或者需要指定主键生成策略师,
//可以使用@TableId注解@TableId(value = "id", type = IdType.AUTO)//当实体类的字段名与数据库表的字段名不一致,或者需要指定字段的某些特殊属性
//(如字段填充策略、是否为数据库字段等)时,可以使用@TableField注解@TableField("company_id")

相关文章:

使用mybatisPlus插件生成代码步骤及注意事项

使用mybatisPlus插件可以很方便的生成与数据库对应的PO对象&#xff0c;以及对应的controller、service、ImplService、mapper代码&#xff0c;生成这种代码的方式有很多&#xff0c;包括mybatis-plus提供的代码生成器&#xff0c;以及idea提供的代码生成器&#xff0c;无论哪一…...

扩散模型(二)

相关阅读&#xff1a;扩散模型&#xff08;一&#xff09; Parameterization of L t L_t Lt​ for Training Loss 回想一下&#xff0c;我们需要训练一个神经网络来近似反向扩散过程中的条件概率分布&#xff0c;即, p θ ( x t − 1 ∣ x t ) N ( x t − 1 ; μ θ ( x t…...

java异常处理——try catch finally

单个异常处理 1.当try里的代码发生了catch里指定类型的异常之后&#xff0c;才会执行catch里的代码&#xff0c;程序正常执行到结尾 2.如果try里的代码发生了非catch指定类型的异常&#xff0c;则会强制停止程序&#xff0c;报错 3.finally修饰的代码一定会执行&#xff0c;除…...

新月军事战略分析系统使用手册

新月人物传记&#xff1a; 人物传记之新月篇-CSDN博客 相关故事链接&#xff1a;星际智慧农业系统&#xff08;SAS&#xff09;&#xff0c;智慧农业的未来篇章-CSDN博客 “新月智能武器系统”CIWS&#xff0c;开启智能武器的新纪元-CSDN博客 “新月之智”智能战术头盔系统&…...

Docker Hub 镜像 Pull 失败的解决方案

目录 引言一、问题二、原因三、解决方法四、参考文献 引言 在云原生技术火热的当下&#xff0c;Docker可谓是其基础&#xff0c;由于其简单以及方便性&#xff0c;让开发人员不必再为环境配置问题而伤脑筋&#xff0c;因为可将其看作一个虚拟机程序去理解。所以掌握好它可谓是…...

SQL进阶实战技巧:如何构建用户行为转移概率矩阵,深入洞察会话内活动流转?

目录 1 场景描述 1.1 用户行为转移概率矩阵概念 1.2 用户行为转移概率矩阵构建方法 (1) 数据收集...

DeepSeek辅助学术写作关键词选取

关键词 关键词主要从论文标题、摘要及正文中提炼出来&#xff0c;需要准确反映论文的核心主题和专业领域。关键词的选择不仅有助于标引人员进行主题词的选取、数据库的建立以及文献的检索&#xff0c;而且也便于读者高效检索和引用相关学术成果&#xff0c;从而促进学术交流的…...

后盾人JS -- 原型

没有原型的对象 也有没有原型的对象 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…...

优选算法的灵动之章:双指针专题(一)

个人主页&#xff1a;手握风云 专栏&#xff1a;算法 目录 一、双指针算法思想 二、算法题精讲 2.1. 查找总价格为目标值的两个商品 2.2. 盛最多水的容器 ​编辑 2.3. 移动零 2.4. 有效的三角形个数 一、双指针算法思想 双指针算法主要用于处理数组、链表等线性数据结构…...

BUUCTF Pwn axb_2019_brop64 题解

这题是BROP 所以不下文件 先nc一下看看&#xff1a; 先要找到栈溢出长度&#xff1a; from pwn import * import timedef getsize():i 1while True:try:p remote("node5.buuoj.cn", 29367)p.sendafter("Please tell me:", ba * i)time.sleep(0.1)data …...

85.[1] 攻防世界 WEB easyphp

进入靶场 属于代码审计 <?php // 高亮显示当前 PHP 文件的源代码&#xff0c;常用于调试或展示代码 highlight_file(__FILE__);// 初始化两个标志变量&#xff0c;用于后续条件判断 $key1 0; $key2 0;// 从 GET 请求中获取参数 a 和 b $a $_GET[a]; $b $_GET[b];// 检…...

动态规划学习

在进行算法题练习和一些题目中发现关于动态规划的内容较多&#xff0c;觉得有必要系统的学习和练习一下 于是参照bilbilUP主 英雄哪里出来 的动态规划50题和LeetKoke网站进行学习和练习 一 概述 动态规划 是一个有限状态自动机 可以抽象为一个有向无环图 有起始节点 终止节点 …...

数据结构【链栈】

基于 C 实现链表栈&#xff1a;原理、代码与应用 一、引言 栈就是一个容器&#xff0c;可以当场一个盒子&#xff0c;只能一个一个拿&#xff0c;一个一个放&#xff0c;而且是从上面放入。 有序顺序栈操作比较容易【会了链栈之后顺序栈自然明白】&#xff0c;所以我们这里只…...

软件测试02----用例设计方法

今天目标 1.能对穷举场景设计测试点 2.能对限定边界规则设计测试点 3.能对多条件依赖关系进行设计测试点 4.能对项目业务进行设计测试点 一、解决穷举场景 重点&#xff1a;使用等价类划分法 1.1等价类划分法 重点&#xff1a;有效等价和单个无效等价各取1个即可。 步骤&#…...

编程AI深度实战:给vim装上AI

系列文章&#xff1a; 编程AI深度实战&#xff1a;私有模型deep seek r1&#xff0c;必会ollama-CSDN博客 编程AI深度实战&#xff1a;自己的AI&#xff0c;必会LangChain-CSDN博客 编程AI深度实战&#xff1a;给vim装上AI-CSDN博客 编程AI深度实战&#xff1a;火的编程AI&…...

《DeepSeek R1:大模型最简安装秘籍》

DeepSeek R1&#xff1a;AI 大模型界的新起之秀 在人工智能的璀璨星空中&#xff0c;大模型如繁星般闪耀&#xff0c;而 DeepSeek R1 无疑是其中一颗冉冉升起的新星&#xff0c;自问世以来便吸引了全球的目光&#xff0c;在人工智能领域占据了重要的一席之地。 从性能表现上看…...

物业管理平台系统为社区管理带来数字化转型与服务创新新机遇

内容概要 物业管理平台系统是数字化转型的利器&#xff0c;为社区管理带来了许多新机遇。想象一下&#xff0c;传统社区物业管理中繁琐的流程和低效的沟通如何被这种智能系统所替代。通过集成在线收费功能&#xff0c;我们不仅提高了费用收取的准确性&#xff0c;还减少了业主…...

红黑树的封装

一、封装思路 在 STL 中 map set 的底层就是封装了一棵红黑树。 其中连接红黑树和容器的是迭代器&#xff0c;map set 暴露出的接口都不是自己写的&#xff0c;而是红黑树写的&#xff0c;外部接口封装红黑树接口。 所以写出红黑树为 map set 写的接口&#xff0c;再在上层的…...

25.2.3 【洛谷】作为栈的复习不错(学习记录)

今天学习的东西不算多&#xff0c;放了一个星期假&#xff0c;感觉不少东西都没那么清楚&#xff0c;得复习一下才行。今天搞个栈题写&#xff0c;把栈复习一下&#xff0c;明天进入正轨&#xff0c;边复习边学习新东西&#xff0c;应该会有二叉树的学习等等... 【洛谷】P1449 …...

MFC程序设计(七)运行时类信息机制

运行时类信息机制的作用 我们在创建对象时&#xff0c;自己是清楚对象属于哪个类&#xff0c;但是计算机却不清楚。而MFC运行时类信息机制就是解决这个问题而存在的 运行时类信息机制的使用 我们在创建一个类时&#xff0c;只有满足以上三个条件&#xff0c;该类才能支持运行时…...

数字游民工作流:OpenClaw+nanobot全球远程办公方案

数字游民工作流&#xff1a;OpenClawnanobot全球远程办公方案 1. 为什么需要自动化全球办公方案 作为一名长期在东南亚各国旅居的数字游民&#xff0c;我深刻体会到跨时区工作的痛苦。凌晨三点被欧洲同事的Slack消息吵醒&#xff0c;错过亚太区的晨会&#xff0c;或是忘记在不…...

FireRedASR-AED-L语音识别模型WebUI快速部署教程:Python环境一键配置

FireRedASR-AED-L语音识别模型WebUI快速部署教程&#xff1a;Python环境一键配置 语音识别技术正在快速融入我们的日常开发&#xff0c;无论是做智能客服、会议纪要&#xff0c;还是内容审核&#xff0c;一个好用的识别模型都能省下大量时间。但很多朋友在第一步——环境部署上…...

内存暴涨却查无踪迹?Python对象生命周期管理的7个致命盲区,现在不看明天宕机!

第一章&#xff1a;Python智能体内存管理的核心原理Python智能体&#xff08;如基于LangChain、LlamaIndex构建的Agent&#xff09;在运行过程中并非仅依赖语言模型推理&#xff0c;其内存管理机制直接决定状态持久性、上下文感知能力与多轮交互一致性。核心在于Python对象生命…...

Fun-ASR-MLT-Nano-2512在教育培训场景的应用:语音课件自动转写

Fun-ASR-MLT-Nano-2512在教育培训场景的应用&#xff1a;语音课件自动转写 1. 技术背景与教育痛点 1.1 教育培训行业的语音处理需求 教育培训行业每天产生大量语音内容&#xff0c;包括教师授课录音、在线课程音频、学生互动语音等。传统的人工转写方式面临三大核心痛点&…...

M2LOrder模型跨操作系统部署:从Windows到Linux的兼容性实战

M2LOrder模型跨操作系统部署&#xff1a;从Windows到Linux的兼容性实战 你是不是也遇到过这种情况&#xff1f;在Windows电脑上跑得好好的一个AI服务&#xff0c;想迁移到Linux服务器上&#xff0c;结果各种报错&#xff0c;环境依赖、路径问题、权限设置……折腾半天也搞不定…...

LAV Filters:让Windows播放任何视频格式的5大优势与安装教程

LAV Filters&#xff1a;让Windows播放任何视频格式的5大优势与安装教程 【免费下载链接】LAVFilters LAV Filters - Open-Source DirectShow Media Splitter and Decoders 项目地址: https://gitcode.com/gh_mirrors/la/LAVFilters 你是否曾经遇到过在Windows电脑上无法…...

RVC模型效果深度评测:针对不同性别、年龄、语言的声音转换鲁棒性

RVC模型效果深度评测&#xff1a;针对不同性别、年龄、语言的声音转换鲁棒性 最近声音克隆和转换技术越来越火&#xff0c;特别是RVC模型&#xff0c;很多人都说它效果不错。但说实话&#xff0c;大部分评测都集中在“像不像原声”这个点上&#xff0c;对于更复杂、更实际的情…...

让ai安装ai:使用快马平台智能分析环境并自动生成最优dify部署与调优方案

最近在折腾Dify的安装部署&#xff0c;发现这个AI驱动的开发平台本身也需要AI来辅助安装&#xff0c;真是个有趣的循环。好在发现了InsCode(快马)平台&#xff0c;用它的AI能力帮我解决了这个"用AI装AI"的需求。记录下这个智能化安装方案的设计思路&#xff0c;或许能…...

MyBatisPlus SQL解析踩坑记:JSqlParser版本升级的那些事儿

MyBatisPlus SQL解析踩坑记&#xff1a;JSqlParser版本升级的那些事儿 当你在深夜被生产环境的报警短信惊醒&#xff0c;发现原本运行良好的SQL查询突然报出Encountered unexpected token错误时&#xff0c;很可能正遭遇JSqlParser版本升级带来的"惊喜"。作为MyBatis…...

终极Emscripten编译缓存策略:加速WebAssembly项目构建的完整指南

终极Emscripten编译缓存策略&#xff1a;加速WebAssembly项目构建的完整指南 【免费下载链接】emscripten Emscripten: An LLVM-to-WebAssembly Compiler 项目地址: https://gitcode.com/gh_mirrors/em/emscripten Emscripten作为一款强大的LLVM-to-WebAssembly编译器&a…...