`
witcheryne
  • 浏览: 1094235 次
  • 性别: 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, "");
	}
}
分享到:
评论
发表评论

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

相关推荐

    jsp读取大对象CLOB并生成xml文件示例

    <%... charset=gb2312″ %> <%@ page info=”database handler”%> <...@ page import=”java.sql.*”%> <%@ page import=”javax.servlet.*”%> <%@ page import=”java

    Java开发详解.zip

    031708_【第17章:Java数据库编程】_处理大数据对象(1)—处理CLOB数据笔记.pdf 031709_【第17章:Java数据库编程】_处理大数据对象(2)—处理BLOB数据笔记.pdf 031710_【第17章:Java数据库编程】_...

    spring-framework-reference4.1.4

    Null and empty string values ..................................................................... 44 XML shortcut with the p-namespace .......................................................... 44 ...

    Hibernate注释大全收藏

    具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 Clob 类型. java.sql.Blob, Byte[], byte[] 和 serializable type 将被持久化为 Blob 类型。 @Lob public String getFullText() { ...

    spring-framework-reference-4.1.2

    Null and empty string values ..................................................................... 44 XML shortcut with the p-namespace .......................................................... 44 ...

    ssh(structs,spring,hibernate)框架中的上传下载

    首先数据表中的Blob字段在Java领域对象中声明为byte[]类型,而非java.sql.Blob类型。  2.数据表Blob字段在Hibernate持久化映射文件中的type为org.springframework.orm.hibernate3.support.BlobByteArrayType,即...

    kettle通过java代码将数据库blob 字段抽取到本地文件

    kettle通过java代码将数据库blob 字段抽取到本地文件

    Javashop开发规范V2.2

    Javashop开发规范V2.2 版本 说明 提交人 V1.0 初稿 定义了包名、异常、事务、和路径的规范 王峰 V2.0 1. 重新整理了命名规范 2. 增加常用命词对照表 王峰 V2.1 1.增加数据库操作的说明 2.增加常用方法介绍 王峰 V...

    ORACLE,mysql,sqlserver,sybase数据库装文本软件

    java -jar -db sqlserver -i 11.8.126.181 -s abcd -u test -w test -f f: est.xlsx -t tmp_i -ff xls mysql例子: 登陆本机数据库的root用户,裝载a.txt的文本数据到tmp_i表,不提交 java -jar xxx.jar -db mysql -i...

    ARCH4系统开发指南

    8.7 String对象、StringBuilder对象和原始数据类型的特点 116 8.7.1 String对象的“equals()”和“==” 116 8.7.2 StringBuilder对象 116 8.7.3 原始数据类型的“==” 117 8.8 代码双击域onchange之后弹出iframe窗口...

    SQLite(SqliteDev)

     string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";  cmd.CommandText = sql;  cmd.Connection = conn;  cmd.ExecuteNonQuery();  //插入数据  sql = "INSERT INTO test VALUES...

    Oracle解析复杂json的方法实例详解

     1、在PL/SQL中写json串,无需声明json对象,只需直接拼接成格式正确的json字符串即可,因此数据库对象间json串的传递完全可以用varchar2或clob来代替。  2、结构复杂的json串节点元素值基本上可

    Oracle9i的init.ora参数中文说明

    说明: 用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果设置为 TIMESTAMP, 只有在服务器与本地时间戳相匹配的情况下, 才能执行该过程。如果设置为 SIGNATURE, 在签名安全的情况下即可执行该过程。...

    DBKING使用指南

    在dbking中,所有的数据库数据只有五种数据类型,String、Number(BigDecimal)、Timestamp、Clob(String)、Blob(byte[]),经过反复测试后,我们会例出各种数据库数据类型到这五种类型的映射表,当然我们也有...

    SqliteDev 384

     string sql "CREATE TABLE test username varchar 20 password varchar 20 ";  cmd CommandText sql;  cmd Connection conn;  cmd ExecuteNonQuery ;  插入数据  sql "INSERT INTO test ...

Global site tag (gtag.js) - Google Analytics