`
wzxqiang900
  • 浏览: 2166 次
社区版块
存档分类
最新评论

mybatis+oracle insert 判断

阅读更多
业务需求:需要在插入数据库之前判断该数据是否已经存在数据库中,如果存在则进行update操作,如果不存在则进行insert操作
使用语句:merge into ser_layout_ccic_person a
using (select '证件号' certificate_code,
              '身份类型' certificate_type,
              'test' name
         from dual) b
on (a.certificate_code = b.certificate_code and a.certificate_type=b.certificate_type)
when matched then
  update set a.name = b.name
           
when not matched then
  insert
    (a.certificate_code, a.certificate_type, a.name)
  values
    (b.certificate_code, b.certificate_type, b.name)
mybatis配置:<insert id="insertPersonOrUpdate" parameterType="PersonInfo">
merge into <include refid="ac.person"/> a
using (select #{certificateCode} certificate_code from dual) b
on (a.certificate_code = b.certificate_code)
when matched then
  update set a.name = #{name},
             a.sex=#{sex},
             a.birthday=#{birthday},
             a.native_area_code=#{nativeAreaCode},
             a.address=#{address},
             a.mobile=#{mobile},
             a.used_name=#{usedName}
            
when not matched then
  insert
    (a.certificate_code, a.certificate_type, a.name,a.used_name,a.sex,a.birthday,a.native_area_code,a.address,a.mobile,a.type,a.insert_flag)
  values
    (#{certificateCode},#{certificateType},#{name},#{usedName},#{sex},#{birthday},#{nativeAreaCode},#{address},#{mobile},#{type},#{insertFlag})


</insert>
0
2
分享到:
评论

相关推荐

    mybatis + oracle demo

    【标题】"mybatis + oracle demo"是一个关于如何结合MyBatis框架与Oracle数据库进行实际操作的示例项目。这个项目旨在为初学者提供一个简单易懂的起点,帮助他们快速掌握MyBatis在Oracle环境下的应用。 【描述】...

    springMVC+MyBatis+Oracle+Web实现增删改查完整案例+数据库数据)

    使用Oracle时,需要了解SQL语句,包括DML(Data Manipulation Language,数据操作语言)如INSERT、UPDATE、DELETE和DDL(Data Definition Language,数据定义语言)如CREATE TABLE等。 4. **Web实现**: 在Web实现...

    mybatis+Oracle做批量导入时的坑

    在Java开发中,MyBatis框架与Oracle数据库结合进行批量数据导入时,可能会遇到一些问题。本文将详细探讨这些问题,并提供一种可行的解决方案。 首先,批量插入操作在DAO层,我们定义了一个`insertList`方法,它接收...

    Spring+SpringMVC+MyBatis+oracle (简单)增删改查

    - MyBatis的Mapper接口和XML配置:定义了针对`User`表的SQL查询和操作,如insert、select、update和delete方法。 - Spring的Service接口和实现类:定义业务逻辑,调用Mapper接口执行数据库操作。 - Spring MVC的...

    mybatis 整合oracle (含增删改查)

    在实际开发中,将 MyBatis 整合到 Oracle 数据库进行数据操作,包括增删改查,是常见的需求。以下将详细介绍这个过程。 1. **环境准备** - **Oracle 数据库**:首先确保你已经安装并配置了 Oracle 数据库,创建好...

    mybatis+springmvc分页

    本项目以"Mybatis+SpringMVC"为技术栈,实现了Oracle数据库中的emp表的增删改操作,并结合分页功能,提供了良好的用户体验。 首先,Mybatis是一个优秀的持久层框架,它简化了Java开发中的SQL操作,将SQL语句与Java...

    MyBatis+Spring整合示例

    接着,我们创建了`UserMapper`接口,这个接口定义了数据库操作的方法,如`insertUser`方法,用于插入一个新的用户记录。MyBatis会根据这个接口生成对应的XML映射文件,其中包含具体的SQL语句。 在Spring配置文件中...

    MyBatis+Spring整合CRUD

    1. **创建(CREATE)**:在Mapper接口中定义插入方法,如`insertUser(User user)`,在XML文件中编写对应的INSERT SQL。 2. **读取(READ)**:定义查询方法,如`selectUserById(int id)`,返回User对象。 3. **更新...

    SpringBoot+Mybatis+druid+Redis+thymeleaf例子

    2.默认使用了Oracle的数据库 ,使用别的数据注意调整MyuserMapper.xml的insert 语句关于主建ID的获取方式 3.使用Idea 2018开发的 4.Redis测试时 用的是Windows64位的本地版本,主要是测试下Redis的对象序列化和反...

    Oracle+Mybatis的foreach insert批量插入报错的快速解决办法

    总之,当在Oracle数据库中使用MyBatis进行批量插入时,务必注意适应Oracle的特定语法,如使用`INSERT ALL`,避免使用MySQL等其他数据库系统适用的语法,如逗号分隔的`VALUES`列表。同时,确保正确处理主键生成逻辑,...

    通过Mybatis拦截器自动定位慢SQL并记录日志

    // 判断是否为慢SQL if (executionTime &gt; SLOW_SQL_THRESHOLD) { // 记录日志,包含SQL语句、执行时间等信息 logSlowSql(invocation, executionTime); } return result; } private void logSlowSql...

    springboot+mybatis+dubbo 本项目是基于微服务架构的班车预约系统.zip

    采用两个版本第一个版本:springboot+mybatis+dubbo+rocketmq+mysql+redis等。第二个版 MySQL 是一款广受欢迎的开源关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现隶属于美国甲骨文公司(Oracle)。自...

    springboot-mybatis项目练习

    Mapper接口的方法会映射到XML中的SQL标签,例如`&lt;select&gt;`、`&lt;insert&gt;`、`&lt;update&gt;`和`&lt;delete&gt;`。这些XML文件通常放在`src/main/resources/mapper`目录下,与对应的Service接口或实体类同名。 SpringBoot通过`@...

    eclipse+Oracle+Mybatis源代码(可用)

    7. **插入、更新和删除操作**:Mybatis支持基本的数据库操作,如INSERT用于添加新数据,UPDATE用于修改已存在的数据,DELETE用于移除数据。这些操作通常对应于DAO层的方法,与Service层协作完成业务流程。 8. **...

    mybatis的oracle的批量插入优化和mybatis的generator自动生成三层文件

    本文将详细探讨如何在Oracle数据库中进行批量插入优化,并介绍MyBatis Generator这一自动化代码生成工具,以提高开发效率。 首先,让我们深入理解Oracle数据库中的批量插入。批量插入可以显著提升性能,尤其是在...

    Spring MVC+ibatis+oracle框架整合

    例如,"stu"可能是学生表的名称,对应的实体类为Student,Mapper接口为StudentMapper,包含如selectById、insert、update和delete等方法。这些方法在Service层被调用,完成对学生的各种操作。 通过这样的整合,...

Global site tag (gtag.js) - Google Analytics