大对象数据处理
📄字数 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");
}