后端
Mr_Runner
一只码不停手的猿!
展开
-
分布式事务简单介绍
分布式事务简单介绍原创 2022-06-08 15:34:49 · 237 阅读 · 0 评论 -
Synchronized和Lock的区别
1.原始构成(1).Syschronized是关键字,属于JVM层面。底层是通过monitor对象来完成。monitorenter:进入;monitorexit:退出。其实wait/notigy等方法也依赖monitor对象只有在同步块或方法中才能调wait/notify等方法)。(2).Lock是具体类(java.util.concurrent.locks.Lock)是api层面的锁。2.使用方法(1).Synchronized 不需要用户去手动释放锁,当synchronied代码执行完后原创 2020-06-05 22:33:52 · 383 阅读 · 1 评论 -
Mybatis 插入数据的同时获取主键的方式
1.继承 Mapper, MySqlMapper在实体类主键加上注解@Id和 @GeneratedValue(strategy = GenerationType.IDENTITY) ,在项目中不建议继承这两个类,不过微服务中,单标操作,使用这个 api 比较快捷,示例如下: @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id;2.xml配置配置的方式一般有两种:..原创 2020-05-19 10:57:13 · 466 阅读 · 0 评论 -
java.lang.NoClassDefFoundError异常原因分析和解决方案
问题: 项目在本地没有报错,在服务器部署的时候报java.lang.NoClassDefFoundError异常。 发生此问题的时候,在本地的开发工具也会有此异常的警告(开发工具没有关闭警告提示)。 原因: 1.JVM编译时能找到合适的类,运行时不能找到导致错误。例如运行时调用某个类的方法或者访问这个类的静态成员的时,发现这个类不可用,此时Ja...原创 2019-11-21 18:26:42 · 27499 阅读 · 0 评论 -
高并发下对不断变化的数据进行批量操作
问题: 在系统的高并发下,对不断变化的数据进行批量操作,且批量操作的数据和新增的数据互不影响,如何做?解决方案:方案一:使用锁机制,在对数据操作之前锁上一批数据,对这批数据进行批量操作,这样可以保证批量操作的数据和新增的数据不会混合在一起被操作;具体方法:在数据库增加一个批量id字段,对数据操作之前生成一个批量id,插入数据库,再从数据库查询出被插入这个批量id...原创 2019-08-02 09:51:37 · 811 阅读 · 0 评论 -
高并发场景下数据重复插入的问题以及DuplicateKeyException异常在高并发下或批量插入数据时如何优化
问题: 1.高并发时,数据库插入操作抛出DuplicateKeyException异常; 2.批量插入数据的时,数据库插入操作抛出DuplicateKeyException异常;异常信息如下: org.springframework.dao.DuplicateKeyException: ....(具体信息省略......)解决方案:...原创 2019-08-01 12:54:28 · 5744 阅读 · 6 评论 -
高并发下如何对数据库进行更新操作
问题: 在高并发的系统下,对数据库进行更行时,如果没有防重机制做拦截,就会导致数据被更新多次,从而影响更新后程序的后续操作。解决方案:方案一:方案详情:加锁查询拦截,在更新前,加锁(分布式系统用分布式锁、也可用数据库锁等),查询需要更新的数据是否存在且未被 更新,根据查询结果做更新操作,更新后释放锁;适用情况:对数据需要进行多...原创 2019-08-05 09:28:47 · 7245 阅读 · 0 评论 -
java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.String
问题: mybatis中Date参数传入报异常:java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.String;异常信息如下:org.mybatis.spring.MyBatisSystemException: nested exception isorg.apach...原创 2019-03-08 10:28:15 · 29768 阅读 · 0 评论 -
字符串转换成日期异常
问题描述:字符串转换成日期异常解决方案:SimpleDateFormat构造函数的样式与dateString的样式必须相符关键点:String dateString = "2018-12-04";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");正确代码:import java.text.ParseExcept...原创 2018-12-04 18:36:22 · 1876 阅读 · 0 评论