下面介绍数据库中clob(characher large object)(对应于sql server中中的text字段)字段的操作问题:
在插入的时候可以通过函数Hibernate.createClob()将字符串或者流编程clob类型(java.sql.Clob)或者通过以下的这个东东的转换
public class ClobUtil implements Clob{
private Reader reader;
private boolean needsReset = false;
private int length;
public ClobUtil(String str){
reader = new StringReader(str);
length = str.length();
}
public InputStream getAsciiStream() throws SQLException {
try {
if (needsReset) reader.reset();
}
catch (IOException ioe) {
throw new SQLException("could not reset reader");
}
needsReset = true;
return new ReaderInputStream(reader);
}
public Reader getCharacterStream() throws SQLException {
try {
if (needsReset) reader.reset();
}
catch (IOException ioe) {
throw new SQLException("could not reset reader");
}
needsReset = true;
return reader;
}
public String getSubString(long pos, int length) throws SQLException {
return null;
}
public long length() throws SQLException {
return length;
}
public long position(String searchstr, long start) throws SQLException {
return 0;
}
public long position(Clob searchstr, long start) throws SQLException {
return 0;
}
public OutputStream setAsciiStream(long pos) throws SQLException {
return null;
}
public Writer setCharacterStream(long pos) throws SQLException {
return null;
}
public int setString(long pos, String str) throws SQLException {
return 0;
}
public int setString(long pos, String str, int offset, int len) throws SQLException {
return 0;
}
public void truncate(long len) throws SQLException {
}
}
ClobUtil继承自clob,所以可以直接使用。
当从数据库中取出有clob的字段时,也要用流来处理,如下代码可以实现:
eric = dao.getEricByID(13);
Reader reader = eric.getName().getCharacterStream();
//name 为clob类型
BufferedReader br = new BufferedReader(reader);
StringBuffer sb = new StringBuffer();
String s = br.readLine();
sb.append(s);
while(s!=null){
s = br.readLine();
sb.append(s);
}
System.out.println(sb.toString());
如果数据库为oracle,在取出clob字段时采用如下的方法:
//clobtt为clob类型
Writer wr = clobtt.getCharacterOutputStream();
wr.write(strtmp);
wr.flush();
wr.close();
如果数据库为mysql,最好修改如下文件:
my.ini里面的max_allowed_packet ,这个限制了blob文件可存放的最大的容量,默认好像是1m
分享到:
相关推荐
该类中包含有多个方法对数据库中的clob字段进行查询、插入、事物处理、批处理、调用存储过程等操作。使用的是myeclipse8.6,oracle11g,测试的时候执行手动建个表xml_buffer,包含id、xmlcontent字段即可,然后在...
oracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracle
JDBC中操作Blob、Clob等对象
J2EE开发中,经常会遇到存储大文本的文字信息,而oracle数据库的vachar字段最大能存储4000个字节,存储更大的信息必须使用clob或blob字段,本文档就是针对j2ee开发中对colb字段操作的实现。
spring 中对大数据的处理,包括clob,blob的数据。比之jdbc下简便很多。
jdbc操作oracle数据库中的Clob类型
主要介绍了详解jdbc实现对CLOB和BLOB数据类型的操作的相关资料,这里实现写入操作与读写操作,需要的朋友可以参考下
38.优化调整Oracle 8i数据库(从操作系统) 39.在Internet上运作公司是一项艰苦的任务--关键任务 40.在oracle中限制返回结果集的大小 41.在远端如何建立standby数据库 42.怎样分析你的SQL语句的效率 43....
很多朋友在操作oracle数据库的clob,blob字段时不知道怎么插入和使用,这里提供读写范例。
Java数据库编程 数据库编程, JDBC2.0操作 preparedstatement接口 处理大数据对象,处理clob数据 在elipse中找到驱动mysql的方法
java开发,支持各种操作系统; 支持20+种关系数据库(开源、国外商业、国内安可),支持txt,excel2003/2007,支持MongoDB。 简单易用:迁移任务可视化定义、向导式执行。 功能齐全:全库迁移,支持数据表、视图、约束...
java向数据库插入数据与把数据显示到页面,是用于操作数据库的 保存图片到数据库 获取图片到到页面 CLOB类专用处理:
支持复制操作系统命令不能复制的坏文件 支持同一个库中不同块大小的数据文件。 支持多种字符集之间的转换,能够正确的转换CLOB、NCLOB、NVARCHAR2列类型的数据到指定的字符集。 自动检测数据文件的表空间号和文件...
也可以再次将CLOB值上传到数据库。 该值存储在APEX Collection中,或者该插件也可能调用PL / SQL API,例如在上传后将CLOB写入表中。 您可以设置“受影响的元素”,这是触发任何“动态操作事件”并显示加载程序图标...
swing开发的数据库管理...改,查的sql语句,还可以生成对表操作的代码,支持批量表的数据导入和导出(支持blob/clob),写sql有自动提示功能,像pl/sql developer一样,还有其他功能不再多描述,是开发mis系统的好帮手.
它能支持目前市面上见到几乎所有的数据库,并能在主要的操作系统上运行. 支持的数据库包括:Cache, DB2, Derby, Firebird, FrontBase, H2, HSQLDB, Informix, Ingres, JDatastore, MaxDB, Mckoi, Mimer, MySQL, ...
赤兔Oracle数据库恢复软件是一款专业好用的Oracle数据库抢修恢复软件。软件功能强大,持修复因各种原因造成的数据库无法打开或数据库删除后没有备份的问题,从而实现对Oracle数据库的抢修恢复,最大限度减少数据丢失...
第1部分 介绍数据库、SQL和JDBC 第1章 关系型数据库 1.1 理解关系型数据库管理系统 1.1.1 关系模型 1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式...
值得一提的是软件会提供一个图形界面用来查看数据库结构、执行SQL查询和脚本,浏览和导出数据,处理BLOB/CLOB 数据,修改数据库结构等操作。如果您对目前的数据库管理方面还是不太理解如何实现,不妨尝试这款软件吧...
如果利用Oracle的面向对象的技术,可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作,然后使用JPublisher等工具生成自己的Java bean类。如果使用这种方式,不但Java应用程序可以使用应用软件的对象...