Mybatis批量插入Oracle数据库数(包含BLOB类型)

简介: 批量插入,在Oracle中与MySQL有一定差异,尤其遇到CLOB\BLOB时,批量插入的sql语句有个很大差异,但是不包含时,基本一样,所以需要记录一下。

一、映射字段类型
有两种,我都是试过了,都可以用。

//大文本字段

private byte[] dwbzd;

法一:

<result property="dwbzd" column="DWBZD" jdbcType="BLOB" typeHandler="org.apache.ibatis.type.BlobTypeHandler" />

法二:

<result property="dwbzd" column="DWBZD" jdbcType="LONGVARBINARY"/>
二、SQL语句

sql语句与上边的映射方式没有关系,随便哪一个都行。一下语句大体相同,但是我在试用中,出现了问题,如果使用法二存入集合中存在空文本的时候,随后的实体就会报错。法一没有遇到同样的问题。
查阅后的解释是:使用了SELECT查询DUAL导致的后边的这个字段无法正确映射。
法一:

<foreach collection="list" item="photo" index="index" open="begin" close=";end;" separator=";">
    INSERT INTO TABLE_NAME
    (ID,DWBZD)
    values
    (#{photo.id, jdbcType=VARCHAR}, #{photo.dwbzd, jdbcType=BLOB}
    )
</foreach>

法二:
此方法如果

BEGIN
    INSERT INTO TABLE_NAME
    (ID,DWBZD)
    <foreach collection="list" item="photo" index="index" separator="UNION ALL">
      SELECT
      #{photo.id, jdbcType=VARCHAR}, #{photo.dwbzd, jdbcType=BLOB}
      FROM DUAL
    </foreach>
    ;END;
相关文章
|
1月前
|
SQL Java 数据库连接
深入 MyBatis-Plus 插件:解锁高级数据库功能
Mybatis-Plus 提供了丰富的插件机制,这些插件可以帮助开发者更方便地扩展 Mybatis 的功能,提升开发效率、优化性能和实现一些常用的功能。
233 26
深入 MyBatis-Plus 插件:解锁高级数据库功能
|
16天前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
62 11
|
29天前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
1月前
|
存储 Oracle 关系型数据库
oracle数据恢复—Oracle数据库文件大小变为0kb的数据恢复案例
存储掉盘超过上限,lun无法识别。管理员重组存储的位图信息并导出lun,发现linux操作系统上部署的oracle数据库中有上百个数据文件的大小变为0kb。数据库的大小缩水了80%以上。 取出&并分析oracle数据库的控制文件。重组存储位图信息,重新导出控制文件中记录的数据文件,发现这些文件的大小依然为0kb。
|
22天前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
|
1月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
4月前
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
392 2
|
5月前
|
存储 缓存 Oracle
Oracle数据库可扩展性和性能
【7月更文挑战第6天】
96 7
|
存储 SQL 负载均衡
达梦数据库与Oracle数据库:功能、性能和适用场景对比
数据库在现代信息技术领域中扮演着至关重要的角色。在企业级应用中,选择正确的数据库管理系统对于数据存储、处理和查询效率至关重要。本文将对比两个备受关注的数据库管理系统——达梦数据库和Oracle数据库,从功能、性能和适用场景等方面进行深入探讨,以帮助读者在选择合适数据库时做出明智的决策。
2872 1

推荐镜像

更多