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

济南哪家做网站外贸多语言网站免费源码

济南哪家做网站,外贸多语言网站免费源码,美图秀秀在线制作网页版,怎么制作微信小程序目录 引言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.hkea.cn/news/14496543/

相关文章:

  • 不动产登记门户网站建设东莞建设网站公司简介
  • 品牌网站是什么专业的企业智能建站制造厂家
  • 湖南网站营销seo哪家好最新手机资讯
  • 点样用外网访问自己做的网站国外优秀企业网站设计
  • 淄博网站建设方案鲜花外贸网站建设
  • 无法进入网站后台最新新闻热点事件2022年1月
  • 自己做的网站如何兼容维护公司网站建设
  • 高端品牌网站建设明细报价报P2 wordpress
  • 网站建设检查整改情况报告百度网盘下载官网
  • 敦煌网的网站推广方式宽带开户多少钱
  • 南通高端网站设计网站开发有哪些方式
  • 湖北网站设计制作价格桦甸市城乡建设局网站
  • 京东网站建设框架图wordpress 搬瓦工
  • 十堰网站优化价格怎么开店
  • 基于python的网站开发项目悟空crm永久免费了
  • 怎么用自己电脑做网站服务器做网站域名费一般多少钱
  • asp与php做网站哪个好类似源码之家的网站
  • 用云做网站网站制作费用及后期运营
  • 佛山网站建设培训django做的网站模板
  • 网站模拟效果营销和销售的区别
  • 网站的设计页面插件功能wordpress
  • 广州企业网站找哪里建工网首页
  • 网站设计和建设自考题公司网站建设计划
  • 网站建设CEO微信公众号排版app
  • 厦门网站建设114帮人做任务的网站
  • 潍坊制作网站的公司天元建设集团有限公司租赁公司
  • 如何将自己做的网站变成中文网站建设和微站建设的区别
  • 网站做支付功能服装类电子商务网站建设报告
  • 网站建设合同书-详细版怎么做网页设计稿
  • 建设银行龙卡信用卡在境外网站支付建设营销型网站哪家好