| 加入收藏| 设为首页| 联系我们

首页 站长学习 站长之家 源码下载 建站素材 书籍教程 常用工具
 您现在的位置: 动力中国 >> 网络编程 >> 数据库教程 >> 文章正文  
 轻松掌握jdbc操纵Oracle数据库lob字段
 

轻松掌握jdbc操纵Oracle数据库lob字段

http://www.domcn.org  文章来源:本站收藏  点击数:

  关键字:轻松掌握jdbc操纵Oracle数据库lob字段

 

在oracle数据库中,lob(large object,大型对象)类型的字段使用的频率越来越高了。因为这种类型的字段,容量大(最多能容纳4gb的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象、档案等)。而long、long raw等类型的字段,虽然存储容量也不小(可达2gb),但由于一个表中只能有一个这样类型的字段的限制,现在已很少使用了。

lob类型分为blob和clob两种:blob即二进制大型对象(binary large object),适用于存贮非文本的字节流数据(如程序、图象、影音等)。而clob,即字符型大型对象(character largeobject),则与字符集相关,适于存贮文本型的数据(如历史档案、大部头著作等)。

下面以程序实例说明通过jdbc操纵oracle数据库lob类型字段。

先建立如下两个测试用的数据库表,power designer pd模型如下:

建表sql语句为:

create table test_clob ( id number(3), clobcol clob) 
create table test_blob ( id number(3), blobcol blob)

lob对象的存取

1、往数据库中插入一个新的clob对象

public static void clobinsert
(string infile) throws exception 
{ 
/* 设定不自动提交 */ 
boolean defaultcommit = conn.getautocommit(); 
conn.setautocommit(false); 
try { 
/* 插入一个空的clob对象 */ 
stmt.executeupdate(insert into 
test_clob values (’111’, empty_clob())); 
/* 查询此clob对象并锁定 */ 
resultset rs = stmt.executequery
(select clobcol from test_clob 
where id=’111’ for update); 
while (rs.next()) { 
/* 取出此clob对象 */ 
oracle.sql.clob clob = (oracle.sql.clob)rs.getclob(clobcol); 
/* 向clob对象中写入数据 */ 
bufferedwriter out = new bufferedwriter
(clob.getcharacteroutputstream()); 
bufferedreader in = new bufferedreader
(new filereader(infile)); 
int c; 
while ((c=in.read())!=-1) { 
out.write(c); 
} 
in.close(); 
out.close(); 
} 
/* 正式提交 */ 
conn.commit(); 
} catch (exception ex) { 
/* 出错回滚 */ 
conn.rollback(); 
throw ex; 
} 
/* 恢复原提交状态 */ 
conn.setautocommit(defaultcommit); 
}

2、修改clob对象(是在原clob对象基础上进行覆盖式的修改)

public static void clobmodify
(string infile) throws exception 
{ 
/* 设定不自动提交 */ 
boolean defaultcommit = conn.getautocommit(); 
conn.setautocommit(false); 
try { 
/* 查询clob对象并锁定 */ 
resultset rs = stmt.executequery
(select clobcol from test_clob 
where id=’111’ for update); 
while (rs.next()) { 
/* 获取此clob对象 */ 
oracle.sql.clob clob = 
(oracle.sql.clob)rs.getclob(clobcol); 
/* 进行覆盖式修改 */ 
bufferedwriter out = new bufferedwriter
(clob.getcharacteroutputstream()); 
bufferedreader in = new bufferedreader
(new filereader(infile)); 
int c; 
while ((c=in.read())!=-1) { 
out.write(c); 
} 
in.close(); 
out.close(); 
} 
/* 正式提交 */ 
conn.commit(); 
} catch (exception ex) { 
/* 出错回滚 */ 
conn.rollback(); 
throw ex; 
} 
/* 恢复原提交状态 */ 
conn.setautocommit(defaultcommit); 
}


轻松掌握jdbc操纵Oracle数据库lob字段
  • 上一篇文章:

  • 下一篇文章:
  •  热门文章
    普通文章 电子邮件改头换面 四公司畅谈未
    普通文章 PC病毒史上最声名狼藉的八大病
    普通文章 Rails系统中的AJAX开发技术简析
    普通文章 基于ASP.NET AJAX框架实现表单
    普通文章 开发ASP.NET AJAX客户端定制行
    普通文章 用JFreeChart对JSP报表进行增强
    普通文章 SQL Server 2005上的CLR和ADO.
    普通文章 SQL Server 2005的XML支持机制
    普通文章 Firefox中标签式浏览技巧大全
    普通文章 Tomcat中的Session和Cookie大揭
     
     推荐文章
    推荐文章 把Google地图嵌入网页 就是这么
    推荐文章 迅雷搜索候选资源出错的解决
    推荐文章 轻松去除迅雷里的各种广告和资
    推荐文章 突破限制 免费领养到QQ空间五级
    推荐文章 Rational统一过程RUP贴近中小软
    推荐文章 构建自己的轻量级XML DOM分析程
    推荐文章 WPS Office 2007技巧:妙用配置
    推荐文章 Excel 2007:求余数函数实用进阶
    推荐文章 浅谈ASP.NET的Postback
    推荐文章 软件开发中项目需求管理简述
     
     相关文章
    没有相关文章
    设为首页 | 加入收藏 | 广告合作 | 联系站长 | 版权申明 |
    动力中国为网友提供免费学习资料,可用资源,如果您认为我们的相关内容侵害到了您的权利请联系管理员
    Copyright © 2006-2008 domcn.org All Rights Reserved.