oracle JDBC 保存BLOB CLOB字段

441 篇文章 1 订阅

//ps.setClob(index, createClob(con,ojb)

/**

* 创建BLOB

* @param conn 数据库链接

* @param o 数据对象

* @return BLOB

* @throws Exception

*/

@SuppressWarnings("deprecation")

private BLOB createBlob(Connection conn,Object o) throws Exception{

BLOB blob=BLOB.createTemporary(conn, true, CLOB.DURATION_SESSION);

if(o instanceof byte[]){

blob.putBytes(1, (byte[])o);

}else if(o instanceof InputStream){

blob.open(BLOB.MODE_READWRITE);

OracleBlobOutputStream os=(OracleBlobOutputStream) blob.getBinaryOutputStream();

InputStream is=(InputStream)o;

       byte[] b = new byte[1024];

       int read=0;

       while ((read=is.read(b))!=-1) {

       os.write(b,0,read);

       }

os.flush();

os.close();

os=null;

is.close();

is=null;

}else if(o instanceof File){

blob.open(BLOB.MODE_READWRITE);

OracleBlobOutputStream os=(OracleBlobOutputStream) blob.getBinaryOutputStream();

File file=(File)o;

InputStream is=new FileInputStream(file);

       byte[] b = new byte[1024];

       int read=0;

       while ((read=is.read(b))!=-1) {

       os.write(b,0,read);

       }

os.flush();

os.close();

os=null;

is.close();

is=null;

}else{//数据类型不符

throw new Exception("Exception BLOB Object type not!");

}

return blob;

}

/**

* 创建CLOB

* @param conn 数据库链接

* @param o 数据对象

* @return CLOB

* @throws Exception

*/

@SuppressWarnings("deprecation")

private CLOB createClob(Connection conn,Object o) throws Exception{

CLOB clob=CLOB.createTemporary(conn, true, CLOB.DURATION_SESSION);

if(o instanceof String){

clob.putString(1, (String)o);

}else if(o instanceof char[]){

clob.putChars(1, (char[])o);

}else if(o instanceof Reader){

clob.open(CLOB.MODE_READWRITE);

oracle.jdbc.driver.OracleClobWriter writer=(OracleClobWriter) clob.getCharacterOutputStream();

Reader reader=(Reader)o;

       char[] c = new char[1024];

       int read=0;

       while ((read=reader.read(c))!=-1) {

       writer.write(c,0,read);

       }

writer.flush();

writer.close();

}else{//数据类型不符

throw new Exception("Exception CLOB Object type not!");

}

return clob;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值