- 博客(5)
- 资源 (3)
- 收藏
- 关注
原创 mybatis写xml时数字类型千万别用 !=‘‘(不为空串)进行判断
前言最近项目内更新数据时,发现数字类型字段设置为0时不能正常的更新进数据库,我们打印了下mybatis的sql日志发现字段为0的sql没有被拼接。样例下面的是错误示例 ❌ <update id="update" parameterType="com.chengfengfeng.test.domain.People"> update people set <if test="age!=null and age !=''">
2020-09-21 13:10:01 21186
原创 惊呆了,高并发下System.currentTimeMillis()竟然有这么大的问题?!!!
前言最近在做滑动窗口的优化实现中,了解到在并发情况下System.currentTimeMillis()竟然有严重的性能问题,所以自己做测试测试下。在印象中我们感觉这是基于底层的api应该不会有什么大问题,也确实,在不是高并发下也不会出现什么问题。 /** * Returns the current time in milliseconds. Note that * while the unit of time of the return value is a millisecon
2020-09-19 16:33:11 23797 7
原创 手把手教会你使用建造者模式
什么是建造者模式建造者模式可以简单理解为搭积木建房子,是我们一步一步、一层一层来搭建对象的过程,属于创建型模式,一般对象会提供一个Builder来进行构造。在构建的过程中我们不需要知道构建的过程,我们只需要告诉构建者我想要什么就可以了。详细介绍举个例子,假如我们去肯德基点餐有大概以下几步:点一个汉堡点一杯可乐服务员下单其中 我们前三个的顺序其实是可以随意切换的,可以先要可乐再要汉堡,下单是最后的build操作,来生成我们最终的订单。当然我们如果学了装饰器模式后可以选择要冰可乐和双牛堡,这
2020-09-12 15:43:30 20391
原创 手把手教会你使用责任链模式
什么是责任链模式顾名思义,责任链就是将多个处理单元串成链路,是一种行为模式。例如我们的登录校验(用户判断 -> 账号密码判断 -> 验证码校验-> …)一系列的从处理逻辑进行了解耦,各自处理各自的业务,处理完成后交给后边的链路继续处理。优缺点优点解耦,各自的业务分开各自处理灵活,处理单元无需关心链路情况,并且非常方便的增删链路单元和改变处理顺序缺点链路过长会导致处理速度变慢如果出现循环引用,则会导致系统崩溃请求并不一定能够被责任链处理到(可能存在每个处理单元都无
2020-09-11 20:53:48 20562
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人