【学习笔记】Mybatis-Plus(二) :常用注解

常用注解

注解含义应用场景
@TableName表名注解,标识实体类对应的表表名和实体类名称不一致
@TableId主键注解,标识实体类的主键主键需要指定自增长
@TableField字段注解数据库名称和字段名称不一致
@TableLogic逻辑删除不是真正物理删除数据
@KeySequence序列主键策略oracle的主键序列

注解应用

1.注解@TableName

用于表名和实体类名称不同的情况。比如:user表现在叫t_user。而我们的实体类还是叫user,那么就需要用这个注解

加以标识。

在这里插入图片描述

补充说明:

如果表名和实体类名一样的话,其实是不用@TableName注解的

如果所有的表名都是以t_开头的话,可以通过全局配置进行设置

​ mybatis-plus.global-config.db-config.table-prefix=t_

默认驼峰转下划线,比如:LmUser会自动对应为lm_user表

记忆印记:

MP中表名和实体类名称一致时,啥都不用注解。但是为了规范化还是尽量进行注解表名。

2.注解@TableId

用于注释主键。MP默认主键的名字是id,如果表中不叫id而是叫uid或者userid的话,就需要标识为id主键了。

同时MP默认主键的生成策略为雪花算法。而要修改这个主键策略也是要通过@TableId来实现。

@TableId注解的属性值包括如下:

属性类型是否必须默认值描述
valueString“”数据库字段名称
typeEnumIdType.NONE主键类型

IdType值的描述:

IdType值描述
AUTO数据库 ID 自增
NONE未设置主键类型。默认雪花算法
INPUT插入前自己设置主键值
ASSIGN_ID雪花算法。默认策略。
ASSIGN_UUID没有中划线的UUID

比如我们的主键现在叫userid而且是自增长类型的。这里就需要这样来注解:

@TableId(value = "userid", type=IdType.AUTO)
private Long id;

记忆印记:

默认id,雪花算法。

3.注解@TableField

MP默认就支持下划线转驼峰的字段映射。但是如果命名不一致时,可以用这个注解进行映射。不过还是最好不用命名不一致。这个注解的属性有很多,不过基本都用默认即可。

比如我们User表中的address字段,在实体类中非要叫addr,此时就可以通过这个注解进行配置

/*** 地址*/
@TableField("address")
private String addr;

可以通过设置来关闭驼峰转换的,如下:

在这里插入图片描述

记忆印记:

最好默认,不用这个注解

4.注解@TableLogic

逻辑删除注解。增加了这个注解的字段就是标识是否逻辑删除了,通常这个字段就0和1两个值。对应java的实体类对象可以是int或者bool值。在lm_user表中增加一个is_deleted字段。

在这里插入图片描述

对应的实体类增加isDeleted的属性。

private Boolean isDeleted;

先不加逻辑删除注解,看看删除生成的sql语句:

==>  Preparing: DELETE FROM lm_user WHERE id=?
==> Parameters: 4(Integer)

加上@TableLogic

@TableLogic
private Boolean isDeleted;

再次执行删除测试,生成的sql语句就变成了update了

==>  Preparing: UPDATE lm_user SET is_deleted=1 WHERE id=? AND is_deleted=0
==> Parameters: 5(Integer)
<==    Updates: 1

而且查询也会加上逻辑删除为0的条件

==>  Preparing: SELECT id,name,age,email,address AS addr,createtime,updatetime,
is_deleted FROM lm_user WHERE id=? AND is_deleted=0
==> Parameters: 6(Long)

记忆印记:

逻辑删除时用,delete变成update,而且删改查都会加上这个逻辑删除的条件

5.注解@KeySequence

序列主键策略,主要用在oracle数据库。

属性类型是否必须默认值描述
valueString“”序列名
clazzClassLong.classid 的类型, 可以指定 String.class,这样返回的 Sequence 值是字符串"1"

记忆印记

oracle主键用到序列时记得用它

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/355735.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

任务调度框架革新:TASKCTL在Docker环境中的高级应用

Docker&#xff1a;轻量级容器化技术的魅力 Docker 作为一款开源的轻量级容器化技术&#xff0c;近年来在 IT 界掀起了一股热潮。它通过封装应用及其运行环境&#xff0c;使得开发者可以快速构建、部署和运行应用。Docker 的优势在于其轻量级、可移植性和可扩展性&#xff0c;它…

【element-ui】el-date-picker动态设置picker-options

<el-date-pickerv-model"formObj.startDate"type"date"placeholder"开始时间":picker-options"startPickerOptions"> </el-date-picker><el-date-pickerv-model"formObj.endDate"type"date"placeh…

Ubuntu安装qemu-guest-agent

系列文章目录 Ubuntu-24.04-live-server-amd64安装界面中文版 Ubuntu-24.04-live-server-amd64启用ssh Ubuntu乌班图安装VIM文本编辑器工具 文章目录 系列文章目录前言一、安装二、启用服务三、效果总结 前言 QEMU Guest Agent&#xff08;简称QEMU GA或QGA&#xff09;在虚拟…

thinkphp5使用模型删除与复杂查询EXP

模型删除 应用软删除 表中需要有字段&#xff0c;deletetime 模型中使用下面方法 use SoftDelete;protected $deleteTime delete_time;真实删除 // 软删除 User::destroy(1); // 真实删除 User::destroy(1,true); $user User::get(1); // 软删除 $user->delete(); // 真…

C# OpenCvSharp 车牌颜色识别

C# OpenCvSharp 车牌颜色识别 目录 效果 项目 代码 下载 效果 项目 代码 using OpenCvSharp; using System; using System.Diagnostics; using System.Drawing; using System.Windows.Forms; namespace OpenCvSharp_Demo { public partial class Form1 : Form { …

1台SW工作站5人同时使用能实现吗

在当今的数字化时代&#xff0c;高效的工作方式和技术创新是企业竞争力的重要组成部分。SolidWorks作为一款功能强大的三维设计软件&#xff0c;广泛应用于机械、电子、建筑等多个领域。然而&#xff0c;随着企业规模的扩大和团队人数的增加&#xff0c;如何充分利用有限的资源…

G7 - Semi-Supervised GAN 理论与实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 理论知识模型实现引用、配置参数初始化权重定义算法模型模型配置模型训练训练模型 模型效果总结与心得体会 理论知识 在条件GAN中&#xff0c;判别器只用…

【机器学习】Lasso回归:稀疏建模与特征选择的艺术

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Lasso回归&#xff1a;稀疏建模与特征选择的艺术引言一、Lasso回归简介1.1 基本…

leetcode:557. 反转字符串中的单词 III(python3解法)

难度&#xff1a;简单 给定一个字符串 s &#xff0c;你需要反转字符串中每个单词的字符顺序&#xff0c;同时仍保留空格和单词的初始顺序。 示例 1&#xff1a; 输入&#xff1a;s "Lets take LeetCode contest" 输出&#xff1a;"steL ekat edoCteeL tsetnoc…

深度学习推理显卡设置

深度学习推理显卡设置 进入NVIDIA控制面板&#xff0c;选择 “管理3D设置”设置 "低延时模式"为 "“超高”"设置 “电源管理模式” 为 “最高性能优先” 使用锁频来获得稳定的推理 法一&#xff1a;命令行操作 以管理员身份打开CMD查看GPU核心可用频率&…

泵设备的监测控制和智慧运维

泵是一种输送流体或使流体增压的机械。它通过各种工作原理&#xff08;如离心、柱塞等&#xff09;将机械能转换为流体的动能或压力能&#xff0c;从而实现液体的输送、提升、循环等操作。 泵的一些具体应用场景&#xff1a; 1.智能水务&#xff1a;在城市供水管网中&#xff…

MATLAB绘图技巧-多边形区域填充图

MATLAB绘图技巧-多边形区域填充图 以下内容来自&#xff1a;科学网—MATLAB绘图技巧-多边形区域填充图 - 彭真明的博文 (sciencenet.cn)START 为了突出某个区域或局部数据的特性&#xff0c;便于数据的可视化和解释&#xff0c;常需要绘制二维区域填充图。MATLAB提供了三种类型…

Linux-DNS分离解析、多域名解析和子域

一、分离解析 在下面的图片中外网用户通过DNS服务器域名解析得到外网的公有IP地址&#xff1b;内网用户通过DNS服务器域名解析得到内网的私有IP 地址&#xff08;本次实验想要得到的结果&#xff09;&#xff1b;一个IP可以对应多个域名&#xff1b;一个域名可以对应多个IP。 1…

【机器学习300问】119、什么是语言模型?

语言模型&#xff08;Language Models&#xff09;是自然语言处理&#xff08;NLP&#xff09;的重要组成部分&#xff0c;它的目的是量化一段文本或一个序列的概率。简单讲就是你给语言模型一个句子&#xff0c;它给你计算出特定语言中这个句子出现的概率。这样的概率度量可以…

Mac电脑FTP客户端推荐:Transmit 5 for Mac 中文版

Transmit 5是一款专为macOS平台设计的功能强大的FTP&#xff08;文件传输协议&#xff09;客户端软件。Transmit 5凭借其强大的功能、直观易用的界面和高效的性能&#xff0c;成为需要频繁进行文件传输和管理的个人用户和专业用户的理想选择。无论是对于新手还是经验丰富的用户…

报表开发工具DevExpress Reporting v23.2 - 增强PDF导出、多平台打印等

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 DevExpress Reporting控件日前正式发布了v23.2…

MS17-010(Eternal blue永恒之蓝)漏洞利用+修复方法

目录 一、漏洞简介 漏洞原理 影响版本 二、漏洞复现 三、复现过程 1、扫描局域网内的C段主机&#xff08;主机发现&#xff09; 扫描结果&#xff1a; 2.使用MSF的永恒之蓝漏洞模块 3.对主机进行扫描&#xff0c;查看其是否有永恒之蓝漏洞 4.准备攻击 四、漏洞利用 …

Marin说PCB之如何在CST仿真软件中添加三端子的电容模型?

上期文章小编我给诸位道友们分享了Murata家的三端子电容的一些特性&#xff0c;这期文章接着上回把三端子电容模型如何在CST软件中搭建给大家分享一下&#xff0c;小编我辛辛苦苦兢兢业业的给各位帖子们免费分享我的一些设计心得&#xff0c;这些按照小编我华山派门派的要求都是…

人脸识别——可解释的人脸识别(XFR)人脸识别模型是根据什么来识别个人的

可解释性人脸识别&#xff08;XFR&#xff09;&#xff1f; 人脸识别有一个任务叫1:N&#xff08;识别&#xff09;。这个任务将一个人的照片与N张注册照片进行比较&#xff0c;找出相似度最高的人。 这项任务用于刑事调查和出入境点。在犯罪调查中&#xff0c;任务从监控摄像…

大厂晋升学习方法一:海绵学习法

早晨 30 分钟 首先&#xff0c;我们可以把起床的闹钟提前 30 分钟&#xff0c;比如原来 07:30 的闹钟可以改为 07:00。不用担心提前 30 分钟起床会影响休息质量&#xff0c;习惯以后&#xff0c;早起 30 分钟不但不会影响一天的精力&#xff0c;甚至可能反而让人更有精神。早起…