字典表(a-z戒傻、A-Z个曙、0-9)可以隨機(jī)打散一下順序泪电,這樣別人就猜不出來了箭阶。
聊聊base62與tinyURL序 base64大家肯定是很熟悉了府树,那base62是什么東東讨阻,它常被用來做短url的映射澜倦。 ascii編碼的62個(gè)字母數(shù)字 26個(gè)小寫字母+26個(gè)大寫字母+10個(gè)數(shù)字=62 ...
字典表(a-z戒傻、A-Z个曙、0-9)可以隨機(jī)打散一下順序泪电,這樣別人就猜不出來了箭阶。
聊聊base62與tinyURL序 base64大家肯定是很熟悉了府树,那base62是什么東東讨阻,它常被用來做短url的映射澜倦。 ascii編碼的62個(gè)字母數(shù)字 26個(gè)小寫字母+26個(gè)大寫字母+10個(gè)數(shù)字=62 ...
統(tǒng)一回復(fù):樂觀鎖用扣減商品庫存舉例不是很合適聚蝶,既然說到了扣減庫存就提一下上面的Update SQL杰妓,改成:UPDATE tb_product_stock SET number=number-1 WHERE id=#{id} AND number>=1 比較合適,MySQL會(huì)根據(jù)主鍵id鎖住這條記錄碘勉。另外還可以在庫存表DDL上做一點(diǎn)文章巷挥,把number 定義為 int(10) unsigned 可以在數(shù)據(jù)庫層面保證不會(huì)出現(xiàn) number小于0情況。
MySQL 樂觀鎖與悲觀鎖悲觀鎖 悲觀鎖(Pessimistic Lock)验靡,顧名思義倍宾,就是很悲觀,每次去拿數(shù)據(jù)的時(shí)候都認(rèn)為別人會(huì)修改胜嗓,所以每次在拿數(shù)據(jù)的時(shí)候都會(huì)上鎖高职,這樣別人想拿這個(gè)數(shù)據(jù)就會(huì)bloc...
@沉靜說 更通用的SQL:UPDATE tb_product_stock SET number=number-#{quantity} WHERE product_id=#{productId} AND number >= #{quantity},另外可以在DDL中將number定義為 bigint(20) unsigned 可以在數(shù)據(jù)庫層面保證 number小于0情況發(fā)生兼蕊。
MySQL 樂觀鎖與悲觀鎖悲觀鎖 悲觀鎖(Pessimistic Lock)初厚,顧名思義,就是很悲觀孙技,每次去拿數(shù)據(jù)的時(shí)候都認(rèn)為別人會(huì)修改产禾,所以每次在拿數(shù)據(jù)的時(shí)候都會(huì)上鎖,這樣別人想拿這個(gè)數(shù)據(jù)就會(huì)bloc...
已更新
Java 線程的狀態(tài)及切換線程的生命周期 Java語言中定義了5種線程狀態(tài)牵啦,在任意一個(gè)時(shí)間點(diǎn)亚情,一個(gè)線程只能有且只有其中一種狀態(tài),這5種狀態(tài)是: 新建(New):創(chuàng)建后尚未啟動(dòng)的線程處于這種狀態(tài)哈雏。 運(yùn)行...
在后端開發(fā)中,應(yīng)用程序在不同的環(huán)境可能會(huì)有不同的配置楞件,例如數(shù)據(jù)庫連接、日志級(jí)別等裳瘪,開發(fā)土浸,測(cè)試,生產(chǎn)每個(gè)環(huán)境可能配置都不一致彭羹。 使用Spring Boot的Profile可以實(shí)...
項(xiàng)目開發(fā)中不可避免需要跟數(shù)據(jù)庫打交道黄伊,作者開發(fā)的項(xiàng)目的中廣泛使用Mybatis作為ORM框架。本文主要講解在Spring Boot項(xiàng)目中 如何整合Mybatis派殷,基于XML方...
上一篇文章:Spring Boot教程 - 整合Mybatis(基于XML配置) 介紹了 Spring Boot集成Mybatis 基于XML方式的配置还最,本文將重點(diǎn)介紹 注解...
日常開發(fā)中,我們可能需要連接多個(gè)數(shù)據(jù)源毡惜,例如數(shù)據(jù)庫進(jìn)行了主從配置拓轻,寫操作走主庫,讀操作走從庫经伙。本來結(jié)合Spring Boot + MyBatis + Druid 來演示如何配...
概述 Metrics is a Java library which gives you unparalleled insight into what your code d...
最近在封裝一個(gè)Java報(bào)警的SDK扶叉,期望應(yīng)用程序在調(diào)用SDK報(bào)警API方法時(shí)能調(diào)用類和調(diào)用方法名并通過郵件和短信的方式通知給開發(fā)者。 大致有兩種方式,總結(jié)一下辜梳。 1. 通過T...
配置 配置(Configuration) 這個(gè)概念對(duì)于廣大程序猿來說應(yīng)該都不陌生粱甫,例如線程池大小、數(shù)據(jù)庫連接作瞄、系統(tǒng)停服開關(guān)等等茶宵。 最開始,我們的配置都是以key-value的...
無論是Servlet或者Spring宗挥、MyBatis乌庶,配置資源文件都是必不可少的一項(xiàng)工作,Java中主要提供了提供了2個(gè)類來讀取資源文件契耿,一個(gè)是Class類瞒大,一個(gè)是Class...
最近在業(yè)務(wù)中開始大量使用RocketMQ,記錄一下心得搪桂。 Producer最佳實(shí)踐 一透敌、發(fā)送消息注意事項(xiàng) 一個(gè)應(yīng)用盡可能用一個(gè)Topic,消息子類型用tags來標(biāo)識(shí)踢械,tags...
Git 刪除一個(gè)遠(yuǎn)程分支時(shí)報(bào)錯(cuò)酗电,如下: 出現(xiàn)這個(gè)錯(cuò)誤的原因是在于遠(yuǎn)程Git服務(wù)器上名稱為0.1.0的有兩個(gè)對(duì)象:一個(gè)是tag,一個(gè)是分支内列;也就是說tag分支和branch分支...
Zookeeper提供了很多方便的功能撵术,方便我們查看服務(wù)器的狀態(tài),增加话瞧,修改嫩与,刪除數(shù)據(jù)(入口是zkServer.sh和zkCli.sh)。還提供了一系列四字命令交排,方便我們跟服...
算法簡(jiǎn)介 RSA加密算法是一種非對(duì)稱加密算法都许,在公開密鑰加密和電子商業(yè)中RSA被廣泛使用。 算法實(shí)現(xiàn) 1嫂冻、RSAUtils.java 2胶征、測(cè)試用例: 3、運(yùn)行結(jié)果 源代碼 J...