240 发简信
IP属地:北京
  • 字典表(a-z、A-Z、0-9)可以随机打散一下顺序,这样别人就猜不出来了。

    聊聊base62与tinyURL

    序 base64大家肯定是很熟悉了,那base62是什么东东,它常被用来做短url的映射。 ascii编码的62个字母数字 26个小写字母+26个大写字母+10个数字=62 ...

  • 统一回复:乐观锁用扣减商品库存举例不是很合适,既然说到了扣减库存就提一下上面的Update SQL,改成:UPDATE tb_product_stock SET number=number-1 WHERE id=#{id} AND number>=1 比较合适,MySQL会根据主键id锁住这条记录。另外还可以在库存表DDL上做一点文章,把number 定义为 int(10) unsigned 可以在数据库层面保证不会出现 number小于0情况。

    MySQL 乐观锁与悲观锁

    悲观锁 悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会bloc...

  • @沉静说 更通用的SQL:UPDATE tb_product_stock SET number=number-#{quantity} WHERE product_id=#{productId} AND number >= #{quantity},另外可以在DDL中将number定义为 bigint(20) unsigned 可以在数据库层面保证 number小于0情况发生。

    MySQL 乐观锁与悲观锁

    悲观锁 悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会bloc...

  • 已更新:smile:

    Java 线程的状态及切换

    线程的生命周期 Java语言中定义了5种线程状态,在任意一个时间点,一个线程只能有且只有其中一种状态,这5种状态是: 新建(New):创建后尚未启动的线程处于这种状态。 运行...

  • Spring Boot教程 - Spring Boot Profiles实现多环境配置切换

    在后端开发中,应用程序在不同的环境可能会有不同的配置,例如数据库连接、日志级别等,开发,测试,生产每个环境可能配置都不一致。 使用Spring Boot的Profile可以实...

  • Spring Boot教程 - 整合Mybatis(基于XML配置)

    项目开发中不可避免需要跟数据库打交道,作者开发的项目的中广泛使用Mybatis作为ORM框架。本文主要讲解在Spring Boot项目中 如何整合Mybatis,基于XML方...

  • Spring Boot教程 - 整合Mybatis(注解方式)

    上一篇文章:Spring Boot教程 - 整合Mybatis(基于XML配置) 介绍了 Spring Boot集成Mybatis 基于XML方式的配置,本文将重点介绍 注解...

  • Spring Boot教程 - 整合MyBatis 多数据源

    日常开发中,我们可能需要连接多个数据源,例如数据库进行了主从配置,写操作走主库,读操作走从库。本来结合Spring Boot + MyBatis + Druid 来演示如何配...

  • Dropwizard Metrics使用

    概述 Metrics is a Java library which gives you unparalleled insight into what your code d...

  • Java 运行时获取调用类和调用方法名的几种方式

    最近在封装一个Java报警的SDK,期望应用程序在调用SDK报警API方法时能调用类和调用方法名并通过邮件和短信的方式通知给开发者。 大致有两种方式,总结一下。 1. 通过T...

  • 配置中心设计思考

    配置 配置(Configuration) 这个概念对于广大程序猿来说应该都不陌生,例如线程池大小、数据库连接、系统停服开关等等。 最开始,我们的配置都是以key-value的...

  • 120
    Java中读取资源文件小结

    无论是Servlet或者Spring、MyBatis,配置资源文件都是必不可少的一项工作,Java中主要提供了提供了2个类来读取资源文件,一个是Class类,一个是Class...

  • RocketMQ最佳实践

    最近在业务中开始大量使用RocketMQ,记录一下心得。 Producer最佳实践 一、发送消息注意事项 一个应用尽可能用一个Topic,消息子类型用tags来标识,tags...

  • Git push error: dst refspec 0.1.0 matches more than one

    Git 删除一个远程分支时报错,如下: 出现这个错误的原因是在于远程Git服务器上名称为0.1.0的有两个对象:一个是tag,一个是分支;也就是说tag分支和branch分支...

  • Zookeeper教程 - Zookeeper命令行操作

    Zookeeper提供了很多方便的功能,方便我们查看服务器的状态,增加,修改,删除数据(入口是zkServer.sh和zkCli.sh)。还提供了一系列四字命令,方便我们跟服...

  • RSA加密算法(java版)

    算法简介 RSA加密算法是一种非对称加密算法,在公开密钥加密和电子商业中RSA被广泛使用。 算法实现 1、RSAUtils.java 2、测试用例: 3、运行结果 源代码 J...

个人介绍
Stay hungry. Stay foolish.