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

茶叶响应式网站自己做的网站怎么接入银联支付

茶叶响应式网站,自己做的网站怎么接入银联支付,建网站费用 优帮云,哪个网站上做ppt比较好1、概念 在讲解乐观锁之前#xff0c;我们还是先来分析下问题: 业务并发现象带来的问题:秒杀 假如有100个商品或者票在出售#xff0c;为了能保证每个商品或者票只能被一个人购买#xff0c;如何保证不会出现超买或者重复卖 对于这一类问题#xff0c;其实有很多的解决方…1、概念 在讲解乐观锁之前我们还是先来分析下问题: 业务并发现象带来的问题:秒杀 假如有100个商品或者票在出售为了能保证每个商品或者票只能被一个人购买如何保证不会出现超买或者重复卖 对于这一类问题其实有很多的解决方案可以使用 第一个最先想到的就是锁锁在一台服务器中是可以解决的但是如果在多台服务器下锁就没有办法控制比如12306有两台服务器在进行卖票在两台服务器上都添加锁的话那也有可能会导致在同一时刻有两个线程在进行卖票还是会出现并发问题 我们接下来介绍的这种方式是针对于小型企业的解决方案因为数据库本身的性能就是个瓶颈如果对其并发量超过2000以上的就需要考虑其他的解决方案了。 简单来说乐观锁主要解决的问题是当要更新一条记录的时候希望这条记录没有被别人更新。 2、实现思路 乐观锁的实现方式: 数据库表中添加version列比如默认值给1 第一个线程要修改数据之前取出记录时获取当前数据库中的version1 第二个线程要修改数据之前取出记录时获取当前数据库中的version1 第一个线程执行更新时set version newVersion where version oldVersion newVersion version1 [2] oldVersion version [1] 第二个线程执行更新时set version newVersion where version oldVersion newVersion version1 [2] oldVersion version [1] 假如这两个线程都来更新数据第一个和第二个线程都可能先执行 假如第一个线程先执行更新会把version改为2 第二个线程再更新的时候set version 2 where version 1,此时数据库表的数据version已经为2所以第二个线程会修改失败 假如第二个线程先执行更新会把version改为2 第一个线程再更新的时候set version 2 where version 1,此时数据库表的数据version已经为2所以第一个线程会修改失败 不管谁先执行都会确保只能有一个线程更新数据这就是MybatisPlus提供的乐观锁的实现原理分析。 上面所说的步骤具体该如何实现呢? 3、实现步骤 分析完步骤后具体的实现步骤如下: 步骤1:数据库表添加列 列名可以任意比如使用version,给列设置默认值为1 步骤2:在模型类中添加对应的属性 根据添加的字段列名在模型类中添加对应的属性值 Data //TableName(tbl_user) 可以不写是因为配置了全局配置 public class User {TableId(type IdType.ASSIGN_UUID)private String id;private String name;TableField(valuepwd,selectfalse)private String password;private Integer age;private String tel;TableField(existfalse)private Integer online;private Integer deleted;Versionprivate Integer version; } 步骤3:添加乐观锁的拦截器 Configuration public class MpConfig {Beanpublic MybatisPlusInterceptor mpInterceptor() {//1.定义MybatisPlus拦截器MybatisPlusInterceptor mpInterceptor new MybatisPlusInterceptor();//2.添加乐观锁拦截器mpInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());return mpInterceptor;} } 步骤4:执行更新操作 添加version数据 SpringBootTest class Mybatisplus03DqlApplicationTests { ​Autowiredprivate UserDao userDao;Testvoid testUpdate(){User user new User();user.setId(3L);user.setName(Jock666);user.setVersion(1);userDao.updateById(user);} } 你会发现我们传递的是1MybatisPlus会将1进行加1然后更新回到数据库表中。 所以要想实现乐观锁首先第一步应该是拿到表中的version然后拿version当条件在将version加1更新回到数据库表中所以我们在查询的时候需要对其进行查询 SpringBootTest class Mybatisplus03DqlApplicationTests { ​Autowiredprivate UserDao userDao;Testvoid testUpdate(){//1.先通过要修改的数据id将当前数据查询出来User user userDao.selectById(3L);//2.将要修改的属性逐一设置进去user.setName(Jock888);userDao.updateById(user);} } 大概分析完乐观锁的实现步骤以后我们来模拟一种加锁的情况看看能不能实现多个人修改同一个数据的时候只能有一个人修改成功。 SpringBootTest class Mybatisplus03DqlApplicationTests { ​Autowiredprivate UserDao userDao;Testvoid testUpdate(){//1.先通过要修改的数据id将当前数据查询出来User user userDao.selectById(3L);     //version3User user2 userDao.selectById(3L);    //version3user2.setName(Jock aaa);userDao.updateById(user2);              //version4user.setName(Jock bbb);userDao.updateById(user);               //verion3?条件还成立吗} } 运行程序分析结果 乐观锁就已经实现完成了如果对于上面的这些步骤记不住咋办呢? 参考官方文档来实现:乐观锁插件 | MyBatis-Plus
http://www.w-s-a.com/news/297173/

相关文章:

  • 众鱼深圳网站建设设计师网名叫什么好听
  • 中小学生做试卷的网站6网站建设需要注意哪些细节
  • 以个人名义做地方门户网站社保服务个人网站
  • 上海企业做网站设计制作感悟150字
  • asp.netmvc网站开发ps设计网页
  • win2008 挂网站 404官方网站是什么
  • 网站只做内容 不做外链做姓氏图的网站
  • 中国建设银行信用卡黑名单网站wordpress怎么解密密码
  • 建设银行如何网站设置密码广州网站营销推广
  • 企业做网站的步骤与做网站注意事项四川省住房建设厅网站打不开
  • 网页设计网站规划报告百度文库官网登录入口
  • 郑州医疗网站开发wordpress能注册
  • 创建网站的英语石家庄微信网站建设
  • 分享几个x站好用的关键词微信商城小程序开发一般需要多少钱
  • 做韩国外贸网站wordpress手机版中文
  • 建站群赚钱有前途吗蚌埠北京网站建设
  • 北京网站建设求职简历十堰seo优化教程
  • 网站顶部可关闭广告微信小程序多少钱
  • 网站背景怎么弄斜杠青年seo工作室
  • ps个人网站首页怎么制作如何做网站的版块规划
  • 做网站的市场开源建站工具
  • 邹平做网站哪家好自动点击器app
  • 南阳seo网站排名优化wordpress文章对游客不显示
  • 网站301什么意思湛江市seo网站设计报价
  • 免费建造网站化妆品网络营销方案
  • 建公司网站wordpress the content
  • 网站的站点的管理系统建设银行网站注册企业
  • 长春火车站是哪个站做微商哪个网站有客源
  • 亚马逊培训费用一般多少seo专业培训课程
  • 做推文封面图网站南宁高端网站建设