写了一个 gorm 乐观锁插件】的更多相关文章

前言 最近在用 Go 写业务的时碰到了并发更新数据的场景,由于该业务并发度不高,只是为了防止出现并发时数据异常. 所以自然就想到了乐观锁的解决方案. 实现 乐观锁的实现比较简单,相信大部分有数据库使用经验的都能想到. UPDATE `table` SET `amount`=100,`version`=version+1 WHERE `version` = 1 AND `id` = 1 需要在表中新增一个类似于 version 的字段,本质上我们只是执行这段 SQL,在更新时比较当前版本与数据库版…
写了一个迷你toast提示插件,支持自定义提示文字和显示时间,不想用其他第三方的ui插件,又想要toast等小效果来完善交互的同学可以试试, 代码中还贡献了一段css能力检测js工具函数,做项目的时候可以考虑把这个插件 和 上一篇迷你confirm弹窗插件一起集成到自已写的Base/tool/Library中 代码已经粘贴出来,直接复制即可看到效果,高手勿喷,可以相互交流下(⊙⊙) (hmtl js css已经集成到一起无需其他文件,不依赖jquery zepto等库) <!DOCTYPE ht…
声明,目前只是仅仅针对3.0以下版本,2.0以上版本. 意图: 当要更新一条记录的时候,希望这条记录没有被别人更新 乐观锁实现方式: 取出记录时,获取当前version 更新时,带上这个version 执行更新时, set version = yourVersion+1 where version = yourVersion 如果version不对,就更新失败 第一步,配置 SSM框架(Spring+SpringMVC+MyBatis-Plus): spring-mybatis.xml配置: <…
由于项目想精简不想用其他第三方的ui插件,又很需要像confirm等小效果来完善交互,且使用的频率也是相当的高,于是自己造了一个,省时也省力 代码已经粘贴出来,直接复制即可看到效果,高手勿喷,可以相互交流下(⊙⊙) (hmtl js css已经集成到一起无需其他文件,不依赖jquery zepto等库) <!DOCTYPE html> <html class="um landscape min-width-240px min-width-320px min-width-480p…
大概是四月初开始写的,中间停了有一个月吧.这是我在Github的第一个项目.项目地址:https://github.com/linzb93/jquery.slide.js. 轮播应该是最好写的插件了,也是每个前端应该掌握的技术之一,但是后期功能的拓展,维护性什么的,就不是凭空想象可以解决的. 会去写这个插件,有两个考虑,一个是要提升自己的编码能力,现在工作中能用到的技术不过尔尔(例如面向对象什么的几乎用不上),最好能有一个Side Project 练练手:另一个是现在部门里常用的两个插件,swi…
效果图: 文件的位置摆放: 插件的代码: ;(function($){ $.extend({ dLAdv:function(options){ var defaults={ leftType:0,//左边广告图片效果0稳固不动,1缓慢复位 rightType:0,//右边广告图片的效果0稳固不动,1缓慢复位 leftTime:300,//左边复位时间 rightTime:300,//右边复位时间 leftCloseTime:1000,//左边关闭时间 rightCloseTime:1000,//…
效果图: html代码: 1 <h1>无缝滚动,向右滚动</h1> 2 <ul id="guoul1"> 3 <li><img src="img/f1.jpg" alt="f1"/></li> 4 <li><img src="img/f2.jpg" alt="f2"/></li> 5 <li&g…
检测IE插件 function hasIEPlugin(name){ try{ new ActiveXObject(name); return true; }catch(ex){ return false; } }; console.log(hasIEPlugin('ShockwaveFlash.ShockwaveFlash')); 检测非IE的插件 function hasPlugin(name){ name = name.toLowerCase(); ;i<navigator.plugins…
synchronized / Lock / CAS synchronized和Lock实现的同步锁机制,都属于悲观锁,而CAS属于乐观锁 悲观锁在高并发的场景下,激烈的锁竞争会造成线程阻塞,而大量阻塞线程会导致系统的上下文切换,增加系统的性能开销 乐观锁 乐观锁:在操作共享资源时,总是抱着乐观的态度进行,认为自己能够完成操作 但实际上,当多个线程同时操作一个共享资源时,只有一个线程会成功,失败的线程不会被挂起,仅仅只是返回 乐观锁相比于悲观锁来说,不会带来死锁.饥饿等活性故障问题,线程间的相互影…
事务 概念 Transaction 事务:一个最小的不可再分的工作单元:通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元) 一个完整的业务需要批量的DML(insert.update.delete)语句共同联合完成 事务只和DML语句 ( 数据库操作语句 ) 有关,或者说DML语句才有事务.这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同 特性 ▧ 原子性(A) 事务是最小单位,不可再分 ▧ 一致性(C) 事务要求所有的DML语句操作的时候,必须保证同时成…