美文网首页
一个小小细节引发的Bug

一个小小细节引发的Bug

作者: Mr小智 | 来源:发表于2018-08-24 17:24 被阅读0次

在工作时候,有一个功能是要获取当前时间作为该记录的创建时间插入DB,以往的时候是直接以DateTime或者直接就是以String类型插入DB的,这次是TimeStamp时间戳[有一些大神觉得时间戳是对的啊,没问题,长度够长,精度够准!其实不然,并不是长度长、位数多它就够精准!!]。笔者后台接收前端参数是一个大对象之中还套着对象,换句话来说就是子父级的关系,笔者需要外层对象插入DB后获取到外层对象DB内的ID作为内层对象的关联ID再进行插入,笔者获取关联ID是通过外层对象(假设这是一个用户表,传入的查询条件就是userName+createTime,这两个参数是前端传入的也就是已知确定)的已知字段进行查询获取ID,那么问题就是来了!!

问题的现象是:有时候根据查询条件时可以查到的,但有时候就会查询不到,经过LOGGER的打印得出结论,有时候时间戳的秒数(createTime)有时候会比原本接收的多一秒,这样关联当然查询不到,笔者此时瞬间就想到了四舍五入!经过一番查询,果不其然!
当TimeStamp的毫秒值 > 500时,则会自动进一秒。[到此时,还认为它是精确的吗!也许吧!]

对比两段代码,上面代码则会出现四舍五入的情况,下面的代码则不会:

String UUID = java.util.UUID.randomUUID().toString();
long time = System.currentTimeMillis() + 30 * 60 * 1000;
Timestamp outDate = new Timestamp(time);
long outDateLong = time/1000*1000;
user.setValidateUuid(UUID);
user.setOutDate(outDate);
userMapper.updateByPrimaryKey(user);

String UUID = java.util.UUID.randomUUID().toString();
long time = System.currentTimeMillis() + 30 * 60 * 1000;
long outDateLong = time/1000*1000;
Timestamp outDate = new Timestamp(outDateLong);
user.setValidateUuid(UUID);
user.setOutDate(outDate);
userMapper.updateByPrimaryKey(user);

相关文章

  • 一个小小细节引发的Bug

    在工作时候,有一个功能是要获取当前时间作为该记录的创建时间插入DB,以往的时候是直接以DateTime或者直接就是...

  • 记录Mybatis的配置之谜

     每个现象背后都有其缘由,越离奇的bug越是由不起眼的细节引发,每个bug背后都有框架或代码运行的原理和机制所在,...

  • 记录Mybatis的配置之谜

    每个现象背后都有其缘由,越离奇的bug越是由不起眼的细节引发,每个bug背后都有框架或代码运行的原理和机制所在,解...

  • Mac开发之一个Bug引发的三个思考

    既然是一个Bug引发的思考,自然要先上Bug,如上动图所示,在输入了空格标题之后,引发一个问题,就是光标依然在文本...

  • 第163天  今天hysks改了很多细节和bug

    调整细节,改bug,完善内容。

  • 一个“Toast”引发的bug

    哈哈,蛮开心的,今天收到了简友的第一个喜欢,谢谢~相信大家都用过Toast提示:Toast.makeText(co...

  • 一个bug引发的思考

    事情是这样的,一个商品线的小哥哥,找到我,说有批货,不小心入库了两次,一笔在海外转运虚拟仓,一笔在杭州保税仓,于是...

  • 前端开发怎么Debug?

    你是否发现:有时候,当某个BUG被我们修复之后,却又发现一个由该BUG引发的另一个BUG,或则由于修复算法的缺陷引...

  • iOS Bug

    Refresh Bug : Bug: 添加完数据后一次刷新table,引发多次footRefresh for ba...

  • 正视Bug

    经常会因为一些小细节,不仔细,粗心,或技术细节点的不知导致bug的产生。虽说,coding代码不可能不产生bug。...

网友评论

      本文标题:一个小小细节引发的Bug

      本文链接:https://www.haomeiwen.com/subject/ebriiftx.html