达梦(DM)数据库JDBC LOB 对象使用

MoMo 2021年6月14日21:06:40
评论
18

1、概述

JDBC 标准为了增强对大数据对象的操作,在 JDBC  3.0 标准中增加了 java.sql.Blob 

java.sql.Clob 这两个接口。这两个接口定义了许多操作大对象的方法,通过这些方法就可以

对大对象的内容进行操作。

2. 产生 Lob 对象

 ResultSet  CallableStatement 对象中调用 getBlob() getClob()方法就可以获得 Blob

对象和 Clob 对象:

Blob blob = rs.getBlob(1);

Clob clob = rs.getClob(2);

3. 设置 Lob 对象

Lob 对象可以像普通数据类型一样作为参数来进行参数赋值,在操作 PreparedStatement

CallableStatementResultSet 对象时使用:

PreparedStatement pstmt = conn.prepareStatement("INSERT INTO bio (image, text) " + "VALUES (?, ?)");

//authorImage is a Blob Object

pstmt.setBlob(1, authorImage);

//authorBio is a Clob Object

pstmt.setClob(2, authorBio);

在一个可更新的结果集中,也可以利用 updateBlob(int,Blob)updateBlob(String,Blob)

updateClob(int,Clob)updateClob(String,Clob)来更新当前行。

4. 改变 Lob 对象的内容

Lob 接口提供了方法让用户可以对 Lob 对象的内容进行任意修改:

byte[] val = {0,1,2,3,4};

Blob data = rs.getBlob("DATA");

int numWritten = data.setBytes(1, val); //  在指定的位置插入数据

PreparedStatement ps = conn.prepareStatement("UPDATE datatab SET data = ?");

ps.setBlob("DATA", data);

ps.executeUpdate();

注意:

目前 LOB 内容的更新和其当前所处的事务之间没有直接的联系。更新 LOB 时,会

直接写入到数据库中,即便当前事务最终回滚也不能恢复。

https://xpanx.com/
MoMo
  • 本文由 发表于 2021年6月14日21:06:40
  • 转载请务必保留本文链接:https://xpanx.com/2965.html
书海的搬用工(记住它并且理解它) 读书

书海的搬用工(记住它并且理解它)

每日一书# #六一大人今天的读书笔记# 读完,兴奋10秒,,好,收!我知道好的东西不是读了就可以理解它,也不是读完就可以拥有它,更不是兴奋了就可以“为所欲为”,希望像先贤一样,笃慎自守。运用...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: