业务需求:需要在插入数据库之前判断该数据是否已经存在数据库中,如果存在则进行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>
分享到:
相关推荐
【标题】"mybatis + oracle demo"是一个关于如何结合MyBatis框架与Oracle数据库进行实际操作的示例项目。这个项目旨在为初学者提供一个简单易懂的起点,帮助他们快速掌握MyBatis在Oracle环境下的应用。 【描述】...
使用Oracle时,需要了解SQL语句,包括DML(Data Manipulation Language,数据操作语言)如INSERT、UPDATE、DELETE和DDL(Data Definition Language,数据定义语言)如CREATE TABLE等。 4. **Web实现**: 在Web实现...
在Java开发中,MyBatis框架与Oracle数据库结合进行批量数据导入时,可能会遇到一些问题。本文将详细探讨这些问题,并提供一种可行的解决方案。 首先,批量插入操作在DAO层,我们定义了一个`insertList`方法,它接收...
- MyBatis的Mapper接口和XML配置:定义了针对`User`表的SQL查询和操作,如insert、select、update和delete方法。 - Spring的Service接口和实现类:定义业务逻辑,调用Mapper接口执行数据库操作。 - Spring MVC的...
在实际开发中,将 MyBatis 整合到 Oracle 数据库进行数据操作,包括增删改查,是常见的需求。以下将详细介绍这个过程。 1. **环境准备** - **Oracle 数据库**:首先确保你已经安装并配置了 Oracle 数据库,创建好...
本项目以"Mybatis+SpringMVC"为技术栈,实现了Oracle数据库中的emp表的增删改操作,并结合分页功能,提供了良好的用户体验。 首先,Mybatis是一个优秀的持久层框架,它简化了Java开发中的SQL操作,将SQL语句与Java...
接着,我们创建了`UserMapper`接口,这个接口定义了数据库操作的方法,如`insertUser`方法,用于插入一个新的用户记录。MyBatis会根据这个接口生成对应的XML映射文件,其中包含具体的SQL语句。 在Spring配置文件中...
1. **创建(CREATE)**:在Mapper接口中定义插入方法,如`insertUser(User user)`,在XML文件中编写对应的INSERT SQL。 2. **读取(READ)**:定义查询方法,如`selectUserById(int id)`,返回User对象。 3. **更新...
2.默认使用了Oracle的数据库 ,使用别的数据注意调整MyuserMapper.xml的insert 语句关于主建ID的获取方式 3.使用Idea 2018开发的 4.Redis测试时 用的是Windows64位的本地版本,主要是测试下Redis的对象序列化和反...
总之,当在Oracle数据库中使用MyBatis进行批量插入时,务必注意适应Oracle的特定语法,如使用`INSERT ALL`,避免使用MySQL等其他数据库系统适用的语法,如逗号分隔的`VALUES`列表。同时,确保正确处理主键生成逻辑,...
采用两个版本第一个版本:springboot+mybatis+dubbo+rocketmq+mysql+redis等。第二个版 MySQL 是一款广受欢迎的开源关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现隶属于美国甲骨文公司(Oracle)。自...
// 判断是否为慢SQL if (executionTime > SLOW_SQL_THRESHOLD) { // 记录日志,包含SQL语句、执行时间等信息 logSlowSql(invocation, executionTime); } return result; } private void logSlowSql...
Mapper接口的方法会映射到XML中的SQL标签,例如`<select>`、`<insert>`、`<update>`和`<delete>`。这些XML文件通常放在`src/main/resources/mapper`目录下,与对应的Service接口或实体类同名。 SpringBoot通过`@...
7. **插入、更新和删除操作**:Mybatis支持基本的数据库操作,如INSERT用于添加新数据,UPDATE用于修改已存在的数据,DELETE用于移除数据。这些操作通常对应于DAO层的方法,与Service层协作完成业务流程。 8. **...
本文将详细探讨如何在Oracle数据库中进行批量插入优化,并介绍MyBatis Generator这一自动化代码生成工具,以提高开发效率。 首先,让我们深入理解Oracle数据库中的批量插入。批量插入可以显著提升性能,尤其是在...
例如,"stu"可能是学生表的名称,对应的实体类为Student,Mapper接口为StudentMapper,包含如selectById、insert、update和delete等方法。这些方法在Service层被调用,完成对学生的各种操作。 通过这样的整合,...