开发实体类
开发实体类之间先在pom文件中加入该依赖
<!-- 开发实体类--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency>
我们在实体类中声明各个属性后还需要分别为他们声明get、set方法、该实体类的至少一个构造方法和重写toString方法。虽然idea很强大,可以快速帮我们写好这些方法,但这么多代码写在实体类中难免有些繁杂了,所以我们可以运用注解来实现这些功能,这样就不需要写过多的方法了。
//@Setter //代替了属性的所有set方法
//@Getter //代替了属性的所有get方法
//@ToString //代替了重写的toString方法
@NoArgsConstructor //无参构造方法
@AllArgsConstructor //传入所有参数的构造方法
//@EqualsAndHashCode //代替了hashcode和equals方法@Data //代表上面的那一堆注解,但不包括其中的俩个构造方法的注解
//如果数据库中的表名与实体类的类名不相同,用@TableName("")注解映射
下面就要对实体类中的各个属性进行增强了:
实体类中属性名与数据库中字段名不相同,需要用@TableField(value=“ ”),进行映射,双引号中写的是数据库中的字段名。
主键id的自动填充 :
//@TableId(type= IdType.AUTO) 设置id自增从0开始自增//@TableId(type= IdType.INPUT) id需要手动用set方法写入//@TableId(type= IdType.ASSIGN_ID) id是用雪花算法自动生成id(可兼容数字和字符串)private Integer id;
@TableField(select = false) 表示该字段不参与查询,我们在用select方法查询时不会被显示出来让我们看到,只有我们在查看数据库中的表时才会看到。
@TableField(exist = false) 实体类中某一属性添加了该注解,代表数据库字段中没有该对应字段,同时不会对对数据库进行操作产生影响。
逻辑删除:
先来简单解释一下什么是逻辑删除:就比如公司某销冠员工小明辞职了,该公司就需要把关于员工小明的所有信息删除,但如果删除了那么在公司进行总结时,属于销冠的那部分销售记录与盈利金额都会被删除,这就造成了公司实际的销售额与数据库中的不符合。
为了解决这种问题,就有了逻辑删除,就是数据库表中新增一个字段,该属性用于指明该员工是否还在本公司工作,这样公司在需要删除员工小明信息的时候,就不用删除小明的信息了,只需要修改数据库中小明的该字段信息,让其信息为该公司设置的已辞退的数据就可以了。
//@TableLogic(value = "0",delval = "1") //value代表没删,delval代表删了//这样在执行删除操作时,实际上执行的sql语句是对表中的该字段进行修改//但执行查询时,该字段为1的会被去掉,查不到了;想查到该字段为1的数据的话,需要自己写sql语句查。private int deleted;
deleted为新增的字段。这样我们在执行delete方法时,代码实际上是去修改被删除员工的deleted字段信息了。(注意:我们写代码时,写的是delete方法的代码,不是update改修方法的代码)
乐观锁:解释:在直播间卖某产品,该产品数量有限比较少,但直播间准备抢该产品的用户多得多,该产品供不应求。这时我们就需要对该产品用乐观锁,防止出现多个用户同时对最后一件产品进行操作,且都显示操作成功的错误。
乐观锁,是每对该行数据进行修改一次,该字段的值就会增加1;
乐观锁实际上是获取该行数据中的version字段值并进行加1,并把version的值作为where中的修改条件。如果多个用户同时对该同一产品进行操作,则这多个用户获取的version值是一样的,所以最终只有一个人能操作成功。
@Versionprivate int version;
相关文章:
开发实体类
开发实体类之间先在pom文件中加入该依赖 <!-- 开发实体类--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency>我们在实体类中声明各个属…...
人工智能学习与实训笔记(十五):Scikit-learn库的基础与使用
人工智能专栏文章汇总:人工智能学习专栏文章汇总-CSDN博客 本篇目录 一、介绍 1. 1 Scikit-learn的发展历程及定义 1.2 理解算法包、算法库及算法框架之间的区别和联系 二、Scikit-learn官网结构 三、安装与设置 3.1 Python环境的安装与配置 3.2 Scikit-lea…...
插值与拟合算法介绍
在数据处理和科学计算领域,插值与拟合是两种极为重要的数据分析方法。它们被广泛应用于信号处理、图像处理、机器学习、金融分析等多个领域,对于理解和预测数据趋势具有至关重要的作用。本文将深入浅出地介绍这两种算法的基本原理,并结合C语言编程环境探讨如何在CSDN开发者社…...
下一代Windows系统曝光:基于GPT-4V,Agent跨应用调度,代号UFO
下一代Windows操作系统提前曝光了?? 微软首个为Windows而设的智能体(Agent) 亮相: 基于GPT-4V,一句话就可以在多个应用中无缝切换,完成复杂任务。整个过程无需人为干预,其执行成功…...
二.自定义头文件
一.Worker.h 1.1概述 - 类名:Worker - 继承关系:所有其他类(Employee、Manager、Boss)都继承自该抽象类 - 头文件保护:使用 pragma once 防止头文件重复包含 - 引入标准库:包含 <iostream> 和 <st…...
【AIGC】Stable Diffusion之模型微调工具
推荐一款好用的模型微调工具,cybertron furnace 是一个lora训练整合包,提供训练 lora 模型的工具集或环境。集成环境包括必要的依赖项和配置文件、预训练脚本,支持人物、二次元、画风、自定义lora的训练,以简化用户训练 lora 模型…...
探索未来科技前沿:深度学习的进展与应用
深度学习的进展 摘要:深度学习作为人工智能领域的重要分支,近年来取得了巨大的进展,并在各个领域展现出惊人的应用潜力。本文将介绍深度学习的发展历程、技术原理以及在图像识别、自然语言处理等领域的应用,展望深度学习在未来的…...
PTA | Wifi密码
下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答…...
Linux中gdb使用说明书
首先我们要使用gdb,必须明白gdb使用范围: 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项(gcc/g) 其次,我们就要来学习gdb使用的一些命令了: list/l 行号:显…...
LInux——开发工具的使用
目录 Linux软件包管理器 yum rzsz Linux编辑器——vim vim的使用 vim的基本操作 命令模式的常见命令 底行模式的常见命令 vim是需要配置的 Linux编译器——gcc/g 预处理 编译 汇编 链接 函数库 Linux项目自动化构建工具 make/makefile make原理 项目清理 Linux调试器g…...
沁恒CH32V30X学习笔记03--64位systick
systick CH32F2x 系列产品Cortex-M3 内核自带了一个 24 位自减型计数器(SysTick timer)。支持 HCLK 或 HCLK/8 作为时基,具有较高优先级别(6)。一般可用于操作系统的时基。 CH32V3x 系列产品内核自带了一个 64 位加减计数器(SysTick),支持 HCLK 或者 HCLK/8 作为时基,…...
【JavaEE】IP协议
作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…...
计算机网络-数据通信基础
目录 前言 一、数据通信基本概念 二、数据通信相关知识1 总结 前言 正在学习计算机网络体系,把每日所学的知识梳理出来,既能够当作读书笔记,又能分享出来和大家一同学习讨论。 一、数据通信基本概念 基本概念:信源、信道、信宿&…...
【lesson53】线程控制
文章目录 线程控制 线程控制 线程创建 代码: 运行代码: 强调一点,线程和进程不一样,进程有父进程的概念,但在线程组里面,所有的线程都是对等关系。 错误检查: 传统的一些函数是,成功返回0&…...
TypeScript(一):TypeScript基本理解
TypeScript基本理解 为什么使用TS JavaScript发展至今,没有进行数据类型的验证而我们知道,在编程阶段,错误发现的越早越好而TS就解决了JS的这个问题 认识TypeScript TypeScript是拥有类型的JavaScript超级,它可以编译成普通、…...
C语言—指针
碎碎念:做指针题的时候我仿佛回到了原点,总觉得目的是为了把框架搭建起来,我胡说的哈31 1.利用指针变量将一个数组中的数据反向输出。 /*1.利用指针变量将一个数组中的数据反向输出。*/#include <stdio.h> #include <time.h> #include <…...
c++作业
Shell中的函数(先调用后使用的原则)(没有申明) (Function) 函数名(有没有参数根据调用格式)(不能写任何内容) { 函数体 Return 返回值 } 函数名 ----》…...
什么是tomcat?tomcat是干什么用的?
前言 Tomcat是一个开源的、轻量级的应用服务器,是Apache软件基金会的一个项目。它实现了Java Servlet、JavaServer Pages(JSP)和Java Expression Language(EL)等Java技术,用于支持在Java平台上运行的动态W…...
中科院一区论文复现,改进蜣螂算法,Fuch映射+反向学习+自适应步长+随机差分变异,MATLAB代码...
本期文章复现一篇发表于2024年来自中科院一区TOP顶刊《Energy》的改进蜣螂算法。 论文引用如下: Li Y, Sun K, Yao Q, et al. A dual-optimization wind speed forecasting model based on deep learning and improved dung beetle optimization algorithm[J]. Ener…...
C# 如何实现一个事件总线
EventBus(事件总线)是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制。 它允许不同的组件通过发布和订阅事件来进行解耦和通信。在给定的代码片段中,我们可以看到一个使用C#实现的Event Bus。它定义了一些接口和类来实现事件…...
ESP32-S3 OV2640摄像头从AP模式到STA模式的保姆级切换教程(附完整代码)
ESP32-S3 OV2640摄像头从AP模式到STA模式的保姆级切换教程(附完整代码) 当你第一次拿到ESP32-S3开发板和OV2640摄像头模块时,可能会被官方例程中的AP(热点)模式所困扰。虽然AP模式让设备快速上线,但在实际家…...
如何快速搭建个人小说离线图书馆:fanqienovel-downloader完整使用指南
如何快速搭建个人小说离线图书馆:fanqienovel-downloader完整使用指南 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 厌倦了在线小说的网络限制和广告干扰?想要随时…...
如何用Blade框架实现高效事件驱动架构:异步处理与消息队列终极指南
如何用Blade框架实现高效事件驱动架构:异步处理与消息队列终极指南 【免费下载链接】blade :rocket: Lightning fast and elegant mvc framework for Java8 项目地址: https://gitcode.com/gh_mirrors/bl/blade Blade是一款基于Java8的轻量级MVC框架…...
so-vits-svc声压级标准化技术解析:从原理到实践的7个关键维度
so-vits-svc声压级标准化技术解析:从原理到实践的7个关键维度 【免费下载链接】so-vits-svc SoftVC VITS Singing Voice Conversion 项目地址: https://gitcode.com/gh_mirrors/so/so-vits-svc 声压级标准化是so-vits-svc(SoftVC VITS Singing Vo…...
终极MangoHud配置文件备份工具:轻松打造图形化管理界面
终极MangoHud配置文件备份工具:轻松打造图形化管理界面 【免费下载链接】MangoHud A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. Discord: https://discordapp.com/invite/Gj5YmBb 项目地址: https://gitcode.com/gh_m…...
别再自己造轮子了!用Python HAPI一键搞定HITRAN/HITEMP光谱计算(附避坑指南)
别再重复造轮子!用Python HAPI高效处理HITRAN/HITEMP光谱数据 在光谱分析领域,许多研究者都曾陷入过这样的困境:为了计算某种气体的光谱特性,花费数周甚至数月时间研读文献、编写算法,结果却发现计算效率低下且结果难以…...
ChatTTS 安装与部署实战:从零搭建到性能调优
最近在做一个语音合成的项目,选型时看中了 ChatTTS,它开源的特性、不错的音质和可控性很吸引人。但在实际动手安装和部署时,发现从个人电脑跑起来到服务器上稳定服务,中间有不少坑。今天就把我这一路从零搭建到性能调优的实战经验…...
Defects4J实战:如何利用这个强大的Java缺陷数据库进行自动化测试
Defects4J深度实战:解锁Java缺陷数据库的自动化测试潜能 在当今快节奏的软件开发环境中,质量保障已成为决定项目成败的关键因素。对于Java开发者而言,Defects4J这个开源的缺陷数据库正逐渐成为提升代码质量的秘密武器。不同于普通的测试框架&…...
树莓派4b(armv8) 64位系统源码编译onnx实战指南
1. 环境准备:从零搭建树莓派4B开发环境 在树莓派4B上编译ONNX源码之前,我们需要先确保系统环境配置正确。我用的是一台4GB内存版本的树莓派4B,系统是最新的Raspberry Pi OS 64位版本。这里有个小细节要注意:很多教程还在用32位系统…...
5步构建智能医疗预约系统:91160-cli全流程实战指南
5步构建智能医疗预约系统:91160-cli全流程实战指南 【免费下载链接】91160-cli 健康160全自动挂号脚本 项目地址: https://gitcode.com/gh_mirrors/91/91160-cli 医疗资源紧张导致的挂号难题,让无数患者在凌晨守候却依然一号难求。如何突破人工抢…...
