下面介绍数据库中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类型转换的问题”这一主题时,我们首先需要理解CLOB(Character Large Object)数据类型的基本概念及其在数据库中的应用场景。随后,将深入分析CLOB类型转换过程中可能遇到的问题,并提供相应的...
### 数据库读取CLOB字段 #### 概述 在Oracle数据库中,CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型。CLOB能够容纳4GB的文本信息,适用于存储如文章、报告或者XML文档等大型文本数据。...
本文将详细介绍如何有效地向Oracle数据库插入Clob大段文本,以及在操作过程中可能遇到的问题与解决方案。 ### 一、理解CLOB类型 CLOB类型是Oracle数据库中用于存储大量文本数据的数据类型,它可以存储最大为4GB的...
Java 中操作 Oracle 的 CLOB 字段是一种常见的操作,在实际开发中,我们经常需要在 Oracle 数据库中存储和读取大型文本数据,这时就需要使用 CLOB(Character Large OBject)类型的字段来存储这些数据。下面我们将...
在使用MyBatis框架进行数据操作时,我们可能会遇到CLOB类型数据的读写问题,尤其是在转换和插入数据库时。本篇将详细探讨MyBatis中处理CLOB类型数据的转换以及解决可能出现的异常情况。 首先,MyBatis是Java中的一...
### 读取Oracle数据库中CLOB字段的值 在处理Oracle数据库时,经常会遇到需要读取CLOB(Character Large Object)类型字段的情况。CLOB主要用于存储大量的文本数据,如文章、文档等内容。由于CLOB类型的数据量可能...
通过上述示例,我们可以看到如何使用Java通过JDBC操作Oracle数据库中的CLOB类型数据。这些基本的操作是开发人员在日常工作中经常需要用到的功能之一。掌握这些技术对于实现高效、可靠的数据库应用程序至关重要。此外...
该类中包含有多个方法对数据库中的clob字段进行查询、插入、事物处理、批处理、调用存储过程等操作。使用的是myeclipse8.6,oracle11g,测试的时候执行手动建个表xml_buffer,包含id、xmlcontent字段即可,然后在...
在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何其他大型文本内容。然而,在处理CLOB...
在数据库中,CLOB(Character Large Object)是用来存储大量字符数据的类型,常用于存储文本、XML文档等。这里提到的“clob数据库表结构如下”可能是指一个包含CLOB字段的数据库表,用于存储大文本信息。表的结构...
在C#中操作Oracle数据库通常会用到Oracle.NET接口,其中包括了对CLOB类型的直接支持。 - **创建OracleConnection对象**:首先需要创建一个连接到Oracle数据库的对象。 - **创建OracleCommand对象**:接着创建一...
在 Oracle 数据库中,CLOB 类型对应的数据库类型是 CLOB,在 MySQL 中对应的类型是 TEXT 或 LONGTEXT。 BLOB 类型用于存储二进制数据,可以存储图片、音乐、视频等文件。在 Oracle 数据库中,BLOB 类型对应的数据库...
CLOB操作与BLOB操作类似,但是在获取java.sql.Clob对象后需要强制转换为oracle.sql.CLOB对象,以便使用getCharacterOutputStream()方法将数据写入CLOB字段。 三、出库操作 出库操作可以使用ResultSet.getBlob()或...
这篇文档将详细阐述如何在JDBC中有效地读取和操作Oracle数据库的CLOB字段,并将其转换为String类型。 首先,理解CLOB对象的特性是关键。CLOB是一种BLOB(Binary Large Object)的变种,专用于存储字符数据。在JDBC...
本文将深入探讨Hibernate如何进行BLOB和CLOB的操作,以及相关的核心概念和实践示例。 BLOB用于存储二进制数据,例如图片或文档,而CLOB则用于存储大量的字符数据,如长篇的文本内容。在数据库中,这两个类型通常...
- CLOB和BLOB的读取速度通常比普通字段慢,因此在设计数据库表结构时应尽量避免频繁的读取操作。 总的来说,Spring通过JDBC提供了一套完善的接口和工具类来处理CLOB和BLOB,使得开发者无需直接与JDBC API打交道,...
CLOB、BLOB 与 CLOB 与 BLOB 的区别 CLOB(Character Large OBject)是一种数据库类型,用于存储大型字符对象。...Java 中可以使用不同的方式来操作 CLOB,包括将 CLOB 看成字符串类型和使用流式操作方式。
在数据库迁移或数据同步的过程中,有时需要将含有大对象(LOB,包括BLOB和CLOB)的数据从一个数据库系统复制到另一个不完全支持LOB的数据库系统。本例中,我们讨论如何将DB2数据库中的BLOB数据类型复制到Oracle...