`
witcheryne
  • 浏览: 1099565 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java.sql.Clob 对象转 String

    博客分类:
  • J2SE
阅读更多

 转换类的源码:

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, "");
	}
}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

    2. **反射调用**:对于 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 类型的对象,使用 Java 反射机制调用 `getVendorObj()` 方法,该方法返回一个 `oracle.sql.CLOB` 类型的对象。 3. **CLOB 数据读取**:无论是...

    mybatis 对clob类型转换

    创建一个实现`org.apache.ibatis.type.TypeHandler`接口的类,重写`setParameter`和`getResult`方法,确保在SQL语句执行前能将Java对象转换为CLOB,执行后又能从CLOB还原为原始数据。 2. **配置MyBatis** 在...

    oracle数据类型和对应的JDBC类型.pdf

    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....

    spring+hibernate操作oracle的clob字段

    在Java实体类中,表示CLOB字段的属性应为`String`类型,这样可以直接存储和读取文本内容。在Hibernate的映射文件中,使用`org.springframework.orm.hibernate3.support.ClobStringType`类型来映射这个属性,如下所...

    运用Java如何存取Oracle中的CLOB类型字段

    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编程中,为了能够有效地与Oracle数据库中的CLOB类型交互,Java提供了`java.sql.Clob`类作为接口。 **1. CLOB的读取方法** - **getCharacterStream()**:返回一个`java.io.Reader`对象,按照Unicode编码读取...

    jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标

    标题中的“jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标”涉及到三个主要的Java数据库编程知识点:JDBC连接、Oracle数据库中的CLOB类型处理以及通过Java调用存储过程处理输出游标。 1. JDBC...

    oracle数据库的clob大字段在jdbc中的处理方式

    在JDBC中,CLOB对象被表示为`java.sql.Clob`接口的实例,提供了读取和修改CLOB字段的方法。 要读取CLOB字段并转换为String,你需要遵循以下步骤: 1. **建立连接**:使用`DriverManager.getConnection()`方法建立...

    java读写oracle clob字段

    String sql = "insert into clob_test(id, str) values ('1', ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); ``` 3. **处理CLOB数据**: - 当需要将字符串数据插入CLOB字段时,可以将字符串转换...

    oracle数据类型和对应的JDBC类型.docx

    - `BLOB` 和 `CLOB`:Oracle 中的大对象类型,用于存储大量二进制或字符数据,映射为 `oracle.sql.BLOB` 和 `oracle.sql.CLOB`。 - `ARRAY` 和 `STRUCT`:用于存储数组和结构化数据,映射为 `java.sql.Array` 和 `...

    Hibernate和java中的对应数据类型

    - `java.lang.String` 有时用于存储二进制数据(如Base64编码),对应于 SQL 的 `TEXT` 或 `CLOB` 7. **特殊类型**: - `java.io.Serializable` 通常用于存储复杂对象,映射为 `VARBINARY`、`BLOB` - `java.sql....

    jdbc__clob.rar_oracle

    在Java数据库连接(JDBC)中,Oracle数据库是广泛使用的数据库管理系统之一,它支持各种数据类型,包括大对象(LOB)类型,如Clob(Character Large Object)。本篇将深入探讨如何使用JDBC来操作Oracle数据库中的...

    java存取oracle中的COLB类型数据.docx

    Java提供了`java.sql.Clob`类来处理CLOB数据,主要提供了以下两个方法来读取CLOB数据: 1. **`getCharacterStream()`**:返回一个按照Unicode编码的输入流(`java.io.Reader`对象)。 2. **`getAsciiStream()`**:...

    clob增加、修改

    existingData += String.valueOf(chars); } // 合并新旧数据 String newData = existingData + updatedData; // 更新CLOB Writer writer = clob.setCharacterOutputStream(); writer.write(newData); ...

    Hibernate存储Clob字段的方式总结

    传统存储方式则是将Clob字段在JavaBean中使用Clob类型处理,映射文件ItemsClob.hbm.xml中将content属性映射为java.sql.Clob类型。这种方式不需要特别配置"hibernate.connection.SetBigStringTryClob"属性,其他配置...

    String_clob.zip_oracle

    与之相对的是,Java中的`String`对象是用于处理字符串的基本类,它是不可变的且适用于较小的数据片段。在Java应用程序与Oracle数据库交互时,通常需要在两者之间进行`String`与CLOB类型的转换。以下是对这个主题的...

    数据库读取clob字段

    在Oracle数据库中读取CLOB字段通常涉及数据库连接、SQL查询、CLOB对象处理以及资源管理等多个环节。上述示例展示了如何在Java中实现这一过程。需要注意的是,在实际应用中还应该考虑更多的异常处理机制,以确保程序...

    jdbc 处理clob类型字段

    首先,创建一个Clob对象,并将待插入的文本数据写入到Clob对象中,然后在SQL语句中设置对应的参数。例如: ```java String sql = "INSERT INTO my_table (my_clob_column) VALUES (?)"; Connection conn = ... // ...

    java-deal-the-CLOB-data0.zip_大数据 编程_数据处理

    - `java.sql.Clob`接口是Java中表示`CLOB`对象的接口,提供了创建、读取和修改`CLOB`数据的方法。 3. **JDBC与CLOB** - 在JDBC中,`PreparedStatement`和`CallableStatement`接口提供了设置和获取`CLOB`值的方法...

Global site tag (gtag.js) - Google Analytics