多次向数据库插入数据,如何去重?

刚遇到一个问题:公司的考勤是通过把卡机上的数据导出成Excel表,在上传的内部的Mis系统中,在上传Excel表时,可能由于种种原因而不能完整上传,那就需要重新上传,这时会出现与上次上传成功的部分数据重复。于是就需要保存到数据库时进行去重。

Excel表数据格式:

思路:先根据时间去数据库查出同一天有进入和出去时间的员工号放入list1中,将从Excel表中读到的工号放入list2中,然后通过集合

可以去除数据库中已经存在完整考勤信息的的人。然后将剩下的员工考勤信息插入即可。

大致思路是这样,接下来就需要从数据库中查询既有进入记录又有出去记录的人。

数据库表结构如下:

经过请教Oracle大神——宝宝,写出了如下的SQL语句

成功的找到了有完整进出记录的员工工号,满怀欢喜的去转换Hibernate的HQL语句,执行后悲催了。才知道Hibernate是不支持from后面写子句的……

通过百度,知道了subselect的存在,原理就是先把from中的子查询建立成一个视图,然后在基于此视图查询,但是,没找到能够动态传入查询条件的写法,也就是这个视图是固定的,所以,此路也不通了。

那就只好重新回到service层处理了。

排版丑、技术渣......感谢浏览

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180531G1K7SS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券