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

网站开发会议议程范文如何用 ftp上传网站

网站开发会议议程范文,如何用 ftp上传网站,公众号怎么挣钱,国内最好的在线网站建设目录 引言1. 逻辑删除1.1 概述1.2 逻辑删除的优势1.3.为什么使用逻辑删除1.4 综合案例 2. 乐观锁和悲观锁2.1.什么是乐观锁和悲观锁2.2.乐观锁和悲观锁的区别2.3.综合案例 3. 分页插件总结 引言 在现代软件开发中#xff0c;数据库操作是不可或缺的一环。为了提高系统的性能、… 目录 引言1. 逻辑删除1.1 概述1.2 逻辑删除的优势1.3.为什么使用逻辑删除1.4 综合案例 2. 乐观锁和悲观锁2.1.什么是乐观锁和悲观锁2.2.乐观锁和悲观锁的区别2.3.综合案例 3. 分页插件总结 引言 在现代软件开发中数据库操作是不可或缺的一环。为了提高系统的性能、安全性以及数据一致性开发者需要深入了解一些高级的数据库操作技术。本篇博客将深入探讨三个重要的数据库操作技术逻辑删除、乐观锁和分页插件。通过深度讲解这些技术读者将能够更好地应对实际项目中的复杂场景。 1. 逻辑删除 1.1 概述 MyBatis-Plus中的逻辑删除Logical Delete是在数据库中进行虚拟删除即实际删除数据时并不会将数据从数据库中删除而是通过一个标记来记录其已被删除。这种删除方式称为逻辑删除或软删除。 1.2 逻辑删除的优势 逻辑删除相比物理删除具有以下优势 数据恢复 可以方便地通过修改记录的状态来实现数据的恢复而无需进行繁琐的数据库恢复操作。 历史记录 可以保留数据删除的历史记录方便日后审计和分析。 1.3.为什么使用逻辑删除 当我们使用物理删除时数据将被永久删除无法恢复。但有些情况下我们并不希望永久删除数据比如用户误删除、操作失误等情况这时逻辑删除就尤为重要。 另外逻辑删除还可以对应业务层逻辑将数据状态标志为“已删除”便于后续查询和统计。同时逻辑删除还能提高删除操作效率减少物理删除数据对系统性能的影响。 1.4 综合案例 配置yml global-config:db-config:logic-delete-field: state# 全局逻辑删除的实体字段名 logic-delete-value: 1 # 逻辑已删除值(默认为 1)logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)数据表增加字段state 实体类添加对应的字段state(与yml的要一致) TableField()private intstate;此时使用mybatisplus删除就会把state从0变为1之后查询只会显示未0的 id为1的state字段0改为1 此时id为1已经逻辑删除掉了 2. 乐观锁和悲观锁 2.1.什么是乐观锁和悲观锁 乐观锁 Optimistic Locking 和悲观锁是数据库中的两种并发控制机制。 乐观锁假定数据一般情况下不会发生冲突因此在读取数据时不会对其加锁而是在写入时先比较数据版本号比如时间戳是否相同再进行操作。如果版本号相同则表示该数据没有被其他进程修改可以进行写操作如果版本号不同则表示该数据已经被其他进程修改写操作会失败需要重新读取数据进行操作。 乐观锁是为了解决并发过程中数据更新冲突的问题乐观锁能提高并发过程中的程序吞吐量。 悲观锁则假定数据会发生冲突因此在读取数据时就会对其加锁防止其他进程同时修改此数据直到当前进程操作完成并解锁后其他进程才能再次操作该数据。 2.2.乐观锁和悲观锁的区别 乐观锁和悲观锁的区别主要有以下几点 加锁时间不同乐观锁在读取数据时不会对其加锁而是在写入时进行比较和加锁操作悲观锁在读取数据时就会对其加锁。冲突处理方式不同乐观锁会在写入时进行比较和冲突检测如果版本号不一致则操作失败需要重新读取数据悲观锁则会阻塞其他进程对该数据的访问直到当前进程完成操作并解锁。适用场景不同乐观锁适用于并发量比较小、数据量比较大、操作更多为读取的场景悲观锁适用于并发量比较大、数据量比较小、操作更多为写入的场景。 总的来说乐观锁适用于并发冲突较少的场景可以提高系统的并发性悲观锁适用于并发冲突较多的场景可以保证数据的一致性和安全性。 2.3.综合案例 使用数据版本(Version)记录机制实现乐观锁这是乐观锁最常用的一种实现方式。 在表中添加一个version字段,默认值为1 实体类上添加Version注解 Versionprivate Integer version;导入插件 package com.yuan.ttx.config;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;// Spring Boot 方式 Configuration public class MybatisPlusConfig {Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor mybatisPlusInterceptor new MybatisPlusInterceptor();mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());return mybatisPlusInterceptor;} }然后Controller中 这个是可行的先查询在修改然后version11 上面代码就被乐观锁锁住了对同一个对象操作查询后没修改又查询再修改此时Version没有进行1任然是2然后最后的结果是第一个成功第二个不成功 3. 分页插件 在类中添加下面代码 mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor()); package com.yuan.ttx.config;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;// Spring Boot 方式 Configuration public class MybatisPlusConfig {Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor mybatisPlusInterceptor new MybatisPlusInterceptor();mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());return mybatisPlusInterceptor;} }使用 RequestMapping(/sel)public Object sel(Long p){PageBook page1 new Page(p,5);PageBook res iBookService.page(page1);return res.getRecords();}第二页的数据 用QueryWrapper带条件查询分页 RequestMapping(/sel)public Object sel(Long p,String name){QueryWrapperBook wrapper new QueryWrapper();wrapper.like(StringUtils.isNotEmpty(name),bookname,name);PageBook page1 new Page(p,5);PageBook res iBookService.page(page1,wrapper);return res.getRecords();}总结 通过本篇博客的学习读者深入了解了逻辑删除、乐观锁和分页插件这三个高级数据库操作技术。逻辑删除为数据的保留和恢复提供了便捷的方式乐观锁解决了高并发场景下的数据一致性问题而分页插件使得处理大数据集合更为高效。在实际项目中灵活运用这些技术将使系统更加稳健、高效。
http://www.zqtcl.cn/news/698047/

相关文章:

  • canvas网站源码网站静态和动态区别
  • 网站建设需要了解哪些方面数据分析工具
  • 求个网站没封的2021网站建设初步课程介绍
  • 沈阳网站前端网站建栏目建那些
  • 经典网站案例江苏省建设厅官网
  • 公司建设网站需要多少钱重庆房产网站建设
  • 鹤岗市建设局网站可信网站认证有用吗
  • 网站注册的账号怎么注销如何百度推广
  • 用wordpress制作网站模板阿里云网站建设合作
  • 金华建设公司网站宝武马钢集团公司招聘网站
  • 万州网站制作公司阳江市网站建设
  • 下载建设网站软件投资公司注册资金多少
  • 如何创建一个论坛网站免费域名解析平台
  • 国外经典手机网站设计单位做网站有哪些
  • 网站备案 优帮云百度提交入口网址截图
  • 广州五羊建设官方网站富阳区住房和城乡建设局网站
  • 网站代理怎么做的wordpress有什么缺点
  • 哪些网站可以做免费外贸Wordpress首图自动切换
  • 建网站几个按钮公司黄页企业名录在哪里查
  • 网站建设类外文翻译游戏开科技软件免费
  • 黄山家居网站建设怎么样济南在线制作网站
  • 东莞电子产品网站建设营销型网站推广方式的论文
  • 如何寻找做网站的客户聚名网查询
  • 甘肃制作网站凡科快图官网登录入口在线
  • discuz网站建设教学视频教程哪些大型网站有做互联网金融
  • jquery动画特效网站物流网站前端模板下载
  • 上海集团网站建设网站都是用什么语言写的
  • 地铁公司招聘信息网站网站推广页面 英语
  • 廊坊做网站的企业哪家好做网站app价格多少钱
  • wap网站制作当阳网站建设电话