转换类的源码:
package com.lingran.dayang.utils;
import java.io.IOException;
import java.io.Reader;
import java.sql.Clob;
import java.sql.SQLException;
public class Clob2String
{
/**
* 数据库Clob对象转换为String
*/
@SuppressWarnings("unused")
public static String clobToString(Clob clob)
{
if(clob == null) {
return null;
}
try
{
Reader inStreamDoc = clob.getCharacterStream();
char[] tempDoc = new char[(int) clob.length()];
inStreamDoc.read(tempDoc);
inStreamDoc.close();
return new String(tempDoc);
}
catch (IOException e)
{
e.printStackTrace();
}
catch (SQLException es)
{
es.printStackTrace();
}
return null;
}
}
测试代码: 需要JUnit 4.x
package com.lingran.dayang.utils.test;
import java.sql.Clob;
import javax.sql.rowset.serial.SerialClob;
import org.junit.Test;
import com.lingran.dayang.utils.Clob2String;
import static org.junit.Assert.*;
public class Clob2StringTest {
public @Test void withNotNullClob() {
String value = "lvjian";
Clob clob = null;
try {
clob = new SerialClob(value.toCharArray());
} catch (Exception e) {
fail("fail in create Clob data..");
}
assertNotNull(clob);
String ret = Clob2String.clobToString(clob);
assertNotNull(ret);
assertEquals(ret, value);
}
public @Test void withNull() {
Clob clob = null;
String ret = Clob2String.clobToString(clob);
assertNull(ret);
}
public @Test void withEmptyValue() {
Clob clob = null;
String value = "";
try {
clob = new SerialClob(value.toCharArray());
} catch (Exception e) {
fail("fail in create Clob data..");
}
String ret = Clob2String.clobToString(clob);
assertNotNull(ret);
assertEquals(ret, "");
}
}
分享到:
相关推荐
2. **反射调用**:对于 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 类型的对象,使用 Java 反射机制调用 `getVendorObj()` 方法,该方法返回一个 `oracle.sql.CLOB` 类型的对象。 3. **CLOB 数据读取**:无论是...
创建一个实现`org.apache.ibatis.type.TypeHandler`接口的类,重写`setParameter`和`getResult`方法,确保在SQL语句执行前能将Java对象转换为CLOB,执行后又能从CLOB还原为原始数据。 2. **配置MyBatis** 在...
CLOB 对应的 JDBC 类型是 java.sql.Types.CLOB,Java 类型是 java.sql.Clob。STRUCT 对应的 JDBC 类型是 java.sql.Types.STRUCT,Java 类型是 oracle.sql.STRUCT。 6.REF 类型 REF 对应的 JDBC 类型是 java.sql....
在Java实体类中,表示CLOB字段的属性应为`String`类型,这样可以直接存储和读取文本内容。在Hibernate的映射文件中,使用`org.springframework.orm.hibernate3.support.ClobStringType`类型来映射这个属性,如下所...
String sql = "insert into test values(1, empty_clob())"; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); // 查询并更新CLOB记录 String sqll = "select content from ...
在Java编程中,为了能够有效地与Oracle数据库中的CLOB类型交互,Java提供了`java.sql.Clob`类作为接口。 **1. CLOB的读取方法** - **getCharacterStream()**:返回一个`java.io.Reader`对象,按照Unicode编码读取...
标题中的“jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标”涉及到三个主要的Java数据库编程知识点:JDBC连接、Oracle数据库中的CLOB类型处理以及通过Java调用存储过程处理输出游标。 1. JDBC...
在JDBC中,CLOB对象被表示为`java.sql.Clob`接口的实例,提供了读取和修改CLOB字段的方法。 要读取CLOB字段并转换为String,你需要遵循以下步骤: 1. **建立连接**:使用`DriverManager.getConnection()`方法建立...
String sql = "insert into clob_test(id, str) values ('1', ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); ``` 3. **处理CLOB数据**: - 当需要将字符串数据插入CLOB字段时,可以将字符串转换...
- `BLOB` 和 `CLOB`:Oracle 中的大对象类型,用于存储大量二进制或字符数据,映射为 `oracle.sql.BLOB` 和 `oracle.sql.CLOB`。 - `ARRAY` 和 `STRUCT`:用于存储数组和结构化数据,映射为 `java.sql.Array` 和 `...
- `java.lang.String` 有时用于存储二进制数据(如Base64编码),对应于 SQL 的 `TEXT` 或 `CLOB` 7. **特殊类型**: - `java.io.Serializable` 通常用于存储复杂对象,映射为 `VARBINARY`、`BLOB` - `java.sql....
在Java数据库连接(JDBC)中,Oracle数据库是广泛使用的数据库管理系统之一,它支持各种数据类型,包括大对象(LOB)类型,如Clob(Character Large Object)。本篇将深入探讨如何使用JDBC来操作Oracle数据库中的...
Java提供了`java.sql.Clob`类来处理CLOB数据,主要提供了以下两个方法来读取CLOB数据: 1. **`getCharacterStream()`**:返回一个按照Unicode编码的输入流(`java.io.Reader`对象)。 2. **`getAsciiStream()`**:...
existingData += String.valueOf(chars); } // 合并新旧数据 String newData = existingData + updatedData; // 更新CLOB Writer writer = clob.setCharacterOutputStream(); writer.write(newData); ...
传统存储方式则是将Clob字段在JavaBean中使用Clob类型处理,映射文件ItemsClob.hbm.xml中将content属性映射为java.sql.Clob类型。这种方式不需要特别配置"hibernate.connection.SetBigStringTryClob"属性,其他配置...
与之相对的是,Java中的`String`对象是用于处理字符串的基本类,它是不可变的且适用于较小的数据片段。在Java应用程序与Oracle数据库交互时,通常需要在两者之间进行`String`与CLOB类型的转换。以下是对这个主题的...
在Oracle数据库中读取CLOB字段通常涉及数据库连接、SQL查询、CLOB对象处理以及资源管理等多个环节。上述示例展示了如何在Java中实现这一过程。需要注意的是,在实际应用中还应该考虑更多的异常处理机制,以确保程序...
首先,创建一个Clob对象,并将待插入的文本数据写入到Clob对象中,然后在SQL语句中设置对应的参数。例如: ```java String sql = "INSERT INTO my_table (my_clob_column) VALUES (?)"; Connection conn = ... // ...
- `java.sql.Clob`接口是Java中表示`CLOB`对象的接口,提供了创建、读取和修改`CLOB`数据的方法。 3. **JDBC与CLOB** - 在JDBC中,`PreparedStatement`和`CallableStatement`接口提供了设置和获取`CLOB`值的方法...