依靠数据库锁是非常安全的方式,比方说,分布式定时任务,除了使用quartz不让各个机器上同时跑一个定时任务之外,最好在数据库也加一个保险。插入一条数据之前,判断表中有没有这条数据,如果没有才插入,这样就只会有一条数据插入成功。

<insert id="insertUniqueInnoIndex" parameterType="com.sf.sfpp.innovation.common.model.InnoIndex">insert into inno_index (id, depart_name, season,is_deleted)SELECT #{id,jdbcType=INTEGER}, #{departName,jdbcType=VARCHAR}, #{season,jdbcType=VARCHAR},#{isDeleted,jdbcType=BIT}FROM DUAL WHERE NOT EXISTS (SELECT id FROM  inno_index WHERE season = #{season,jdbcType=VARCHAR})
</insert>

这个DUAL是临时表,不需要自己创建,直接这么用就可以

MyBatis 如果不存在则插入相关推荐

  1. mybatis 批量将list数据插入到数据库

    mybatis 批量将list数据插入到数据库 <select id="selectExistsLightName" parameterType="java.uti ...

  2. list mybatis批量保存_如何实现mybatis批量将list数据插入到数据库

    如何实现mybatis批量将list数据插入到数据库 发布时间:2020-07-06 14:27:59 来源:亿速云 阅读:66 作者:清晨 小编给大家分享一下如何实现mybatis批量将list数据 ...

  3. mybatis操作Oracle数据库批量插入与更新、运行注意事项、属性含义

    一.项目需求 针对将近300万用户的用电数据进行统计分析,将结果更新保存Oracle数据库.我需要往一个表里面插入数据,数据量总计在500万条左右.一条一条插入的话非常慢,2万条数据近20分钟,后面就 ...

  4. mysql 插入毫秒数据_【转载】怎样在mybatis里向mysql中插入毫秒数的时间?

    由于业务场景需求,需要记录精准的时间,但是呢,又不要想使用int类型来存储时间,因为这样的可读性比较差了. 怎样在mybatis中向数据库插入毫秒级别的时间呢? 首先,先来看看怎样向数据库中插入毫秒时 ...

  5. MyBatis一发入魂之插入操作

    第一步: 在dao接口中定义insertStudent方法, 第二步: 在sql映射文件中添加insertSQL语句,因为是根据java对象属性值来插入数据,所以sql语句中的插入列值用#{java对 ...

  6. 【经典】Mybatis百万级高效批量插入

    先贴出最终解决办法 由于分析过程冗长,这里直接给出结论,直接copy去就可以用,若有时间和兴趣再继续往下看看具体解决办法的分析过程. public class MybatisBatchUtils {/ ...

  7. mybatis动态sql,批量插入,批量删除,模糊查询

    trim可以去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 "where"."set"以及"values(" 等前缀,或者 ...

  8. MyBatis 多对多 中间表插入数据

    在做这个员工管理系统demo的时候,由于user和role是多对多关系,且user主键是自增的,所有我们没办法提前知晓这个user_id,所以插入的时候,就需要先插入user,然后再找到刚插入的id拿 ...

  9. MyBatis中insert将数据插入mysql数据库,显示成功但是数据库不显示数据

    问题:mybatis中使用insert向数据库中插入数据,操作成功但是数据库中没有数据. 原因:mybatis除select外,其他操作(insert,update-)默认不自动提交 解决方法:通过日 ...

  10. mybatis xml标签,批量插入

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...

最新文章

  1. linux系统怎样连手机,Linux下手机与蓝牙的连接配置
  2. 【Python】如何在Excel中调用Python脚本,实现数据自动化处理
  3. 单片机原理及其应用——单片机控制按键依次点亮8只发光二极管
  4. Wince6.0编译错误经验总结
  5. 小白用GitHub快速搭建自己的网站,可访问,不用买域名、服务器
  6. 计算机辅助正畸学模型分析,计算机辅助口腔正畸算法研究
  7. linux man命令原理,Linux命令之man详解
  8. 大数据BI系统如何做数据采集
  9. 四则运算2之设计思路篇
  10. Unity一键自动将多个FBX文件生成AB包+又一些小玩意
  11. arm板上简单运行main.cpp
  12. J2EE进阶之JSP和EL表达式 十二
  13. 服务器oemSN查询系统,查看服务器sn码命令
  14. 大学计算机Excel咨询表,大学计算机(二)第十一讲 Excel图表分析
  15. 根据ID从FASTA文件中批量提取序列【Python】
  16. 熊猫分发_与熊猫度假
  17. 为什么HATEOAS?
  18. java解压报错java.io.IOException: failed to skip current tar entry
  19. 【深度学习】跟李沐学ai 线性回归 从零开始的代码实现超详解
  20. cloc rpm安装包制作

热门文章

  1. 【深度学习不是犯罪】欧盟祭出最严数据保护法:专家解读 GDPR
  2. Yoshua Bengio 、吴恩达等预见2022年人工智能趋势
  3. STM32之HAL库详解 及 手动移植
  4. 攻防世界逆向入门题之流浪者
  5. HPLC鬼峰、基线漂移、拖尾、分叉峰、保留时间漂移、柱压过高等系列问题解析
  6. toString().trim()是什么意思
  7. Android Studio Dolphin 的 gradle-7.5.1-all.zip 下载(包含其他版本)
  8. 卖家被骗上万元,已报警立案-跨境知道
  9. Kubernetes(三):k8s集群部署之kubeadm
  10. RPG角色扮演C++