Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


大对象数据处理

📄字数 950
👁️阅读量 加载中...

向表中插入大对象

LOB对象的插入必须通过PreparedStatement、CallableStatement类的setXXX()方法方式实现。虚谷JDBC中PreparedStatement提供多种方法设置大对象参数值,如下列方法:

java
setBinaryStream(int parameterIndex,InputStream x)
setBlob(int parameterIndex, Blob x)
setBlob(int parameterIndex, InputStream x)
setBytes(int parameterIndex,byte[] x)
setCharacterStream(int parameterIndex, Reader reader)
setClob(int parameterIndex, Clob x)
setClob(int parameterIndex, Reader reader)
setString(int parameterIndex, String x)

查询大对象数据

通过XuguDB-JDBC获取大对象值,数据库CLOB对象可通过字符串形式或流式数据形式获取,数据库BLOB对象只通过流式数据形式获取。

示例1: 流式获取 CLOB 对象

java
Statement stm = xuguConn.createStatement();
String sql=”select remark  from  t_clob  where id=101”;
ResultSet rs = stm.executeQuery(sql);
while(rs.next)
{
  Clob data = rs.getClob("remark ");
    //以字符流方式获取数据
    Reader rd = data.getCharacterStream();
    char[] sc = new char[1000];
    StringBuffer sb = new StringBuffer();
    int len = 0;
    while((len=rd.read(sc)) !=-1)
    {
        sb.append(new String(sc,0,len));
    }
    System.out.println(sb.toString());
}

示例2:XuguDB-JDBC 允许以字符串的形式读取 CLOB 对象。

java
String sql="select text from t_clob";
Statement stm=conn.createStatement();
ResultSet rs=stm.executeQuery(sql);
while(rs.next())
{
	String clobStr =rs.getString("text"
}