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

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

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

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

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

大神来个可用解决方案

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

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

3个回答

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

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

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

gogcc
goas 也没有什么效率, 跟用sql直接replace into一个道理
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis sql怎么判断插入的值已经有了或者相同的数据就不插入呢

sql怎么判断插入的值已经有了或者相同的数据就不插入呢 我设置了ID唯一,如果插入数据时ID 已有了,怎样不插入这个ID,将其他插入呢

mybatis mysql 批量插入数据

最近在网上学的jsoup爬数据,爬了大概几万条城市地区的数据准备通过mybatis插入的mysql里,九个字段除了ID,其它都是varchar类型,区划代码是十二位数字暂时也是用的varchar; 想过三种插入方式 1:service层循环调用dao层插入数据,一条一条来 2:拼接sql类似 insert into citytable (province,...) select ... union all select ... union all 在后台先拼接几百条然后插入 3:xml里用foreach循环插入 请问有其它方法可以快速插入数据吗?求学中,路过的大神请多指教

使用mybatis批量插入数据的问题

mybatis配置文件如下:插入的为集合中的数据,当集合中只有一条数据时可以插入进去,但是当一条以上数据时将会报错 ``` <insert id="batchInsert" parameterType="java.util.List"> <selectKey keyProperty="waybillNo" order="BEFORE" resultType="int"> select current_timestamp () </selectKey> insert into oal_tb_waybill_history ( waybill_no,waybill_type,account, cabinet_code,box_code,recover_box_code, captcha,phone,msg_id,msg_state,charge_mode, money,number,state,receive_time,send_time, operator_id,create_time,update_time,del_tag ) values <foreach collection="list" item="item" index="index" open="(" separator="," close=")"> #{item.waybillNo,jdbcType=VARCHAR}, #{item.waybillType,jdbcType=INTEGER}, #{item.account,jdbcType=VARCHAR}, #{item.cabinetCode,jdbcType=VARCHAR}, #{item.boxCode,jdbcType=VARCHAR}, #{item.recoverBoxCode,jdbcType=VARCHAR}, #{item.captcha,jdbcType=VARCHAR}, #{item.phone,jdbcType=VARCHAR}, #{item.msgId,jdbcType=BIGINT}, #{item.msgState,jdbcType=INTEGER}, #{item.chargeMode,jdbcType=INTEGER}, #{item.money,jdbcType=DECIMAL}, #{item.number,jdbcType=TINYINT}, #{item.state,jdbcType=INTEGER}, #{item.receiveTime,jdbcType=TIMESTAMP}, #{item.sendTime,jdbcType=TIMESTAMP}, #{item.operatorId,jdbcType=INTEGER}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.delTag,jdbcType=INTEGER} </foreach> </insert> ``` 报如下错误:![图片说明](https://img-ask.csdn.net/upload/201501/10/1420859244_482832.png) 大家帮忙看看是哪里的错误,感谢!!!

mybatis插入数据 插入成功 但是只有主键怎么回事啊

mybatis插入数据 插入成功 但是只有主键怎么回事啊 数据库中也插入成功,但是只有主键Id有值 其他的都没有值 只是传了,但是不插入 ,什么情况啊?

mybatis插入数据关联表

![![![图片说明](https://img-ask.csdn.net/upload/201703/27/1490601660_641226.png)图片说明](https://img-ask.csdn.net/upload/201703/27/1490601645_988379.png)图片说明](https://img-ask.csdn.net/upload/201703/27/1490601634_603391.png) 我如何实现添加附加费数据的时候将附加费关联表的的数据同时添加 求大神告知 使用springmvc+mybatis

这是我用mybatis写的一个插入数据的方法,请问一下有什么好的处理方式没

![图片说明](https://img-ask.csdn.net/upload/201712/02/1512177132_364582.jpg)

Mybatis 表关联后怎么插入数据

两个表 grade表 和teacher表关联怎么插入数据,在xml中怎么设计 定义: public class Grade { private Integer c_id; private String c_name; private Teacher teacher; 省略get 、set方法...} public class Teacher { private Integer t_id; private String t_name; 省略get 、set方法...} grade表 g_id g_id teacher_id 1 java一班 1 2 java二班 2 teacher表 t_id t_name 1 哈市将 2 阿凡达

Mybatis插入数据库出错

Mybatis插入一条数据到mysql数据库,结果发现主键重复,后台就崩溃了,有没方法可以判断插入操作可不可执行的?谢谢大家、、、

在mybatis中插入数据为什么报空值

@Select("insert into shopBus values(#{id},#{goods.id},#{user.id})") @SelectKey(before=true,keyColumn="id",keyProperty="id",resultType=Integer.class,statement="select shopBus_seq.nextval as id from dual") public void addShop(Shop shop); goods和user对象都存有值,为什么还报空值 private Integer id; private Goods goods; private User user; Goods [id=83, goodsName=外套, count=1000, price=100.0, image=banner2.jpg, imageFile=null, remark=阿大恶趣味群若若群,] User [id=1, userName=aaa, password=111111, phone=12345678900]

如何将2百万条数据最快地用mybatis插入到oracle(第一次发帖子希望不要沉)

目前有这个需求,将2百万条数据添加到数据库没有用redis,首先我是调用会员的接口 返回2百万条会员信息,一条会员信息数据大概400字节左右也就是0.4kb,全部读到 内存中,得到所有数据后逻辑操作先不考虑,想问的是有什么最快的方法将2百万条数据 插入到数据库之中。理想时间8分钟左右不知道能不能搞定?

mybatis中 sql判断日期的是否为周天,如何 判断

mybatis中 sql判断日期的是否为周天,如何 判断 mybatis中 sql判断日期的是否为周天,如何 判断 mybatis中 sql判断日期的是否为周天,如何 判断

oracle数据库 mybatis 插入方法

前台传入一个几位数字,若长度大于9则截取前九位存入数据库,若长度小于9则存入空值,该怎么实现?xml文件中sql语句该怎么写?

SpringBoot + MyBatis插入数据时乱码

SpringBoot + MyBatis插入数据时乱码应该怎么解决

mybatis如何对数据库已经存在的数据进行校验

新建和修改都要做校验。根据两个字段来判断。如果查询到有数据,则不允许插入或者修改。 如果查询到没有。则允许插入或者修改。(数据库字段没有做任何限制,一个是varchar类型一个是number类型)

mybatis 带序列批量插入数据

我的mybatis批量插入,报oracle 的未明确列错误,求大神帮忙看看,以下是mybatis的配置文件 <insert id="insertBatch" parameterType="com.***.entity.Container"> insert into <include refid="table_name"/> ( container_id, parent_id, container_name, total_well_count, empty_well_count, sort, is_box, xNumber, yNumber, remarks, creat_time, creator, last_modify_person, last_modify_time, domain ) select seq_container.nextval, c.* from ( <foreach collection="containerList" item="item" index="index" separator="union all"> select #{item.containerId,jdbcType=NUMERIC}, #{item.parentId,jdbcType=NUMERIC}, #{item.containerName,jdbcType=VARCHAR}, #{item.totalWellCount,jdbcType=NUMERIC}, #{item.emptyWellCount,jdbcType=NUMERIC}, #{item.sort,jdbcType=VARCHAR}, #{item.isBox,jdbcType=NUMERIC}, #{item.xNumber,jdbcType=NUMERIC}, #{item.yNumber,jdbcType=NUMERIC}, #{item.remarks,jdbcType=VARCHAR}, sysdate, #{item.creator,jdbcType=VARCHAR}, #{item.lastModifyPerson,jdbcType=VARCHAR}, sysdate, #{item.domain,jdbcType=VARCHAR} from dual </foreach> ) c </insert>

mybatis 批量进行插入更新,数据库为postgreSQL?

没有发现mybatis的批量更新和插入,用for查询感觉很慢,又需要有这样的需求, 其他数据库查到一些,但是postgre没查到,恳求各位大神稍加指点

mybatis 为什么数据插不进表

数据获取都是正确的,就是数据插不进表,麻烦各位帮忙看看! [code="java"] /* * 插入 */ @Test public void testInsertBlog() throws Exception{ BlogMapper mapper = openSession().getMapper(BlogMapper.class); Blog b=new Blog(); b.setTitle("title2"); b.setContent("content2"); b.setCreateDate(new Date()); mapper.insertBlog(b); sessionClose() ; } [/code] BlogMapper.xml [code="xml"] <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.tony.mybatis.mapper.BlogMapper"> <resultMap type="com.tony.model.Blog" id="blog"> <!--column数据库要查询的字段 property对应java文件的字段名--> <result column="create_date" jdbcType="TIMESTAMP" property="createDate" javaType="java.util.Date"/> </resultMap> <insert id="insertBlog" parameterType="com.tony.model.Blog" > insert into t_blog (title,content,create_date) values (#{title},#{content},#{createDate, jdbcType=TIMESTAMP}); </insert> </mapper> [/code] 后台显示log: DEBUG - ==> Preparing: insert into t_blog (title,content,create_date) values (?,?,?); DEBUG - ==> Parameters: title2(String), content2(String), 2013-07-27 17:30:37.877(Timestamp) 在表定义里面我把表的create_date定义成Timestamp类型 是不是xml映射的时候date类型有什么配置我没有做。

mybatis+oracle.查直接插入数据有延时

用plsql直接向oracle中插入数据,并确定已经插入.但是用mybatis查数据,刚开始的时候查不到,重启Eclipse并且等一会,就可以查到了,请问有什么解决方法? 多谢,mybatis新手

参数list对象结果如何使用mybatis批量插入数据

使用mybatis oracle,当传来的参数是list对象结果集,如何批量插入数据

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

抖音上很火的时钟效果

反正,我的抖音没人看,别人都有几十万个赞什么的。 发到CSDN上来,大家交流下~ 主要用到原生态的 JS+CSS3。 具体不解释了,看注释: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Title&lt;/tit...

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

推荐9个能让你看一天的网站

分享的这9个保证另你意外的网站,每个都非常实用!非常干货!毫不客气的说,这些网站最少值10万块钱。 利用好这些网站,会让你各方面的技能都得到成长,不说让你走上人生巅峰,但对比现在的你,在眼界、学识、技能方面都有质的飞跃。 一、AIRPANO 传送门:https://www.airpano.com/360photo_list.php 这是一个可以躺在家里,就能环游世界的神奇网站。 世界那么大,绝大多...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

一场疫情,炸出了退休的COBOL程序员

COBOL编程语言,估计大多数程序员从没听说过,我这样的编程老司机,也是只闻其名,从未一睹芳容。出门问了问度娘,答案如下:COBOL语言,是一种面向过程的高级程序设计语言,主要用于数据...

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

讲真,这两款idea插件,能治愈你英语不好的病

时不时就有小伙伴问我,“二哥,能推荐一款 IDE 吗?”你看这话问的,现在搞 Java 的不都在用 Intellij IDEA 吗,还用得着推荐(我已经和 Eclipse 分手了)。然后小伙伴又说,“二哥,IDEA 支持中文吗?我英语不太好。”你看这话问的,搞编程的,英语不好是硬伤啊! 不过,随着 IDEA 最新版(版本号是 2020.1)的发布,英语不好的病可以彻底治愈了。为什么这么说呢?因为 ...

在拼多多上班,是一种什么样的体验?我心态崩了呀!

之前有很多读者咨询我:武哥,在拼多多上班是一种什么样的体验?由于一直很忙,没抽出时间来和大家分享。上周末特地花点时间来写了一篇文章,跟大家分享一下拼多多的日常。 1. 倒时差的作息 可能很多小伙伴都听说了,拼多多加班很严重。这怎么说呢?作息上确实和其他公司有点区别,大家知道 996,那么自然也就能理解拼多多的“11 11 6”了。 所以当很多小伙伴早上出门时,他们是这样的: 我们是这样的: 当...

又一起程序员被抓事件

就在昨天互联网又发生一起让人心酸的程序员犯罪事件,著名的百度不限速下载软件 Pandownload PC 版作者被警方抓获。案件大致是这样的:软件的作者不仅非法盗取用户数据,还在QQ群进...

瑞德西韦重症用药结果再曝光,上百名重症一周内好转,股价大涨19%

郭一璞 发自 凹非寺量子位 报道 | 公众号 QbitAI期盼已久的瑞德西韦临床数据,现在“偷跑”了。在芝加哥大学医学院的临床试验中,125名病人参与,大部分人都已经出院,其中只有2名病...

应聘3万的职位,有必要这么刁难我么。。。沙雕。。。

又一次被面试官带到坑里面了。面试官:springmvc用过么?我:用过啊,经常用呢面试官:springmvc中为什么需要用父子容器?我:嗯。。。没听明白你说的什么。面试官:就是contr...

Vue商城——详情页功能

详情页实现思路 点击商品进去详情页,根据点击请求更加详细的信息,要传过来goodsItem的iid,根据id去服务器请求更加详细的信息;配置路由映射关系,点击进行跳转,带参数传递跳转 itemClick(){ this.$router.push('/detail/'+this.goodsItem.iid) /* this.$router.push({ ...

太狠了,疫情期间面试,一个问题砍了我5000!

疫情期间找工作确实有点难度,想拿到满意的薪资,确实要点实力啊!面试官:Spring中的@Value用过么,介绍一下我:@Value可以标注在字段上面,可以将外部配置文件中的数据,比如可以...

自学编程的 6 个致命误区

嗨,小伙伴们大家好,我是沉默王二。本篇文章来和大家聊聊自学编程中的一些误区——这是我在 B 站上看了羊哥的一期视频后有感而发的文章。因为确实有很多读者也曾私信问过我这些方面的问题,很有代表性,所以我就结合自己的亲身体会来谈一谈,希望对小伙伴们有所启发。 01、追求时髦 所谓基础不牢,地动山摇啊。可很多小伙伴压根就没注意过这个问题,市面上出什么新鲜的技术就想去尝试,结果把自己学的乱七八糟,心灰意冷...

相关热词 c# cad插入影像 c#设计思想 c#正则表达式 转换 c#form复制 c#写web c# 柱形图 c# wcf 服务库 c#应用程序管理器 c#数组如何赋值给数组 c#序列化应用目的博客园
立即提问