当前位置: 首页 > 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;该类才能支持运行时…...

71.人工智能实战:RAG 权限过滤怎么做?从前期发现“越权召回”到文档 ACL、检索过滤与引用权限校验

人工智能实战:RAG 权限过滤怎么做?从前期发现“越权召回”到文档 ACL、检索过滤与引用权限校验 一、问题场景:AI 没有直接泄露权限,但检索已经越界了 企业级 RAG 系统上线后,最危险的问题之一不是“答错”,而是: 用户问了一个正常问题,但系统召回了他不该看到的资料。…...

Freewall深度解析:揭秘高性能网格布局引擎的实现原理

Freewall深度解析&#xff1a;揭秘高性能网格布局引擎的实现原理 【免费下载链接】freewall kombai/freewall: Freewall 是一个灵活、响应式的网格布局引擎&#xff0c;可用于创建具有自适应布局功能的网页或应用组件&#xff0c;尤其适合于图片墙、瀑布流布局等场景。 项目地…...

代码评审可视化图谱:从Diff到Graph的工程实践与实现

1. 项目概述&#xff1a;当代码评审遇上可视化图谱在团队协作开发中&#xff0c;代码评审&#xff08;Code Review&#xff09;是保障代码质量、促进知识共享的关键环节。然而&#xff0c;传统的代码评审流程&#xff0c;尤其是在处理大型、复杂的变更集&#xff08;Change Set…...

Topit:为什么你的Mac需要这个窗口置顶神器?

Topit&#xff1a;为什么你的Mac需要这个窗口置顶神器&#xff1f; 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 你是否曾经在写代码时需要参考API文档&#…...

标注数据集保姆级教程:从入门到排名第一,看这一篇就够了

一、常见坑与避雷第一&#xff0c;过度依赖众包导致标签质量参差不齐。企业往往以价格为先&#xff0c;忽视了众包工人对领域术语的理解深度&#xff0c;从而造成模型召回率下降7%。第二&#xff0c;缺乏统一标注工具链。使用Excel、Word等异构工具会让数据格式碎片化&#xff…...

COCO数据集实例解析:从JSON结构到YOLO格式的实战转换

1. COCO数据集JSON结构深度解析 第一次打开COCO数据集的JSON文件时&#xff0c;我完全被里面复杂的嵌套结构搞懵了。这个文件就像俄罗斯套娃&#xff0c;一层套着一层。经过多次实战踩坑&#xff0c;终于摸清了它的门道。COCO的标注文件主要包含五个关键部分&#xff0c;每个部…...

3步打造桌面音乐可视化神器:Lano Visualizer完全指南

3步打造桌面音乐可视化神器&#xff1a;Lano Visualizer完全指南 【免费下载链接】Lano-Visualizer A simple but highly configurable visualizer with rounded bars. 项目地址: https://gitcode.com/gh_mirrors/la/Lano-Visualizer 还在寻找能让桌面音乐体验更加生动的…...

实测Taotoken多模型聚合服务的延迟与稳定性观感分享

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 实测Taotoken多模型聚合服务的延迟与稳定性观感分享 作为需要频繁调用大模型API的开发者&#xff0c;服务的稳定性和可预测性是影响…...

XGBoost特征工程超简单

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 XGBoost特征工程&#xff1a;破解“超简单”迷思的深度指南目录XGBoost特征工程&#xff1a;破解“超简单”迷思的深度指南 引言…...

Kali Linux下的SEToolkit:从零搭建一个钓鱼网站测试环境(含Pikachu靶场实战)

Kali Linux下的SEToolkit&#xff1a;从零搭建钓鱼网站测试环境实战指南 在网络安全领域&#xff0c;理解攻击者的思维方式和技术手段是构建有效防御的第一步。社会工程学作为渗透测试中的重要组成部分&#xff0c;常常被用于模拟真实世界中的网络钓鱼攻击。本文将带领读者在Ka…...