gogcc
goas
2016-10-13 10:57
采纳率: 60%
浏览 6.5k

mybatis怎么智能判断数据是否需要插入?

mybatis怎么智能判断数据是否需要插入??

前端传了10条数据, Controler转化为一个List如下面这样的:

{msg:[{id:1,content:"未修改"},{id:2,content:"未修改​"},{id:2,content:"已经修改"}....​]}
  • 前2条数据是数据库中存在的,没有改,不插入到数据库;
  • 3-5条数据是改过的,要更新到数据库中,并把旧数据插入历史库;
  • 6-10条数据是新加的,要插入到数据库中;
      关键是数据对比,我可以手动把数据库中的所有值查出来手动做对比,但是这太累了....完全没有效率呀字段多了我总不能一个一个的对比吧....
    况且数据库有成千上万行数据呀,每次更新时都查一遍多没效率呀

用Hibernate完全不用管这类事情....

大神来个可用解决方案

 (目前6-10条数据很好判断,只需要把id全部查询出来,不存在就插入,关键是判断数据是否需要更新)

最好优雅一点的解决方案,有没有工具库这类的..

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • feng1790291543
    鱼弦 2016-10-13 11:43
    点赞 评论
  • u011606457
    _1_1_7_ 2016-10-14 01:30

    最简单的就是先做插入,捕获主键重复异常后再做更新(不管记录是否有变,都更新);

    伪代码:
    try{
    insert(data);
    }catch(Exception ex){
    update(data);
    }

    点赞 评论
  • milyhj123
    milyhj123 2017-11-15 09:50

    异常会有很多,不一定是因为已经存在记录不能插入。

    点赞 评论

相关推荐