/**
* blob转字符串
*
* @param blob
* @return
* @throws IOException
* @throws SQLException
*/
public static String blobToString(Blob blob) throws IOException, SQLException {
InputStream inputStream = blob.getBinaryStream();
byte[] bytes = null;
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] bufferBytes = new byte[1024];
int readLength = 0;
while ((readLength = inputStream.read(bufferBytes, 0, bufferBytes.length)) > 0) {
byteArrayOutputStream.write(bufferBytes, 0, readLength);
}
bytes = byteArrayOutputStream.toByteArray();
String str = new String(bytes, "gbk");
return str;
} /**
* clob转字符串
*
* @param clob
* @return
* @throws SQLException
* @throws IOException
*/
public static String clobToString(Clob clob) throws SQLException, IOException { String reString = "";
Reader is = clob.getCharacterStream();// 得到流
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
StringBuffer sb = new StringBuffer();
while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING
sb.append(s);
s = br.readLine();
}
reString = sb.toString();
return reString;
} /**
* 获取clob或blob字段内容
*
* @param resultSet 结果集
* @param clobOrBlobColumnName 字段名
* @return
* @throws SQLException
* @throws UnsupportedEncodingException
* @throws IOException
*/
public static String getClobOrBlobContent(ResultSet resultSet, String clobOrBlobColumnName)
throws SQLException, UnsupportedEncodingException, IOException {
String str = "";
String type = "";
for (int i = 1; i <= resultSet.getMetaData().getColumnCount(); i++) {
if (resultSet.getMetaData().getColumnName(i).equals(clobOrBlobColumnName)) {
type = resultSet.getMetaData().getColumnTypeName(i);
break;
}
}
if (type == "BLOB") {
Blob blob = resultSet.getBlob(clobOrBlobColumnName);
if (blob != null)
str = blobToString(blob);// 获取数据库blob字段
}
if (type == "CLOB") {
Clob clob = resultSet.getClob(clobOrBlobColumnName);
if (clob != null)
str = clobToString(clob);
}
return str; }

Blob与Clob转字符串的更多相关文章

  1. java读取blob,clob转换为字符串

    直接上代码: package com.it.test; import java.io.BufferedReader; import java.io.StringWriter; import java. ...

  2. Hibernate or JPA Annotation中BLOB、CLOB注解写法

    BLOB和CLOB都是大字段类型,BLOB是按二进制字节码来存储的,而CLOB是可以直接存储字符串的. 在hibernate or JPA Annotation中,实体BLOB.CLOB类型的注解与普 ...

  3. panzer 电力项目十一--hibernate操作大文本字段Blob和Clob

    hibernate操作大文本字段Blob和Clob解决方案: 1.大文本字段Blob和Clob(流); 2.截串存取 第一步: 创建新表:Elec_CommonMsg_Content create t ...

  4. 问题:oracle CLOB类型;结果:oracle中Blob和Clob类型的区别

    BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的的,或者可以直接用LOB字段代替这两个.但是为了更好的管理ORACLE数据库,通常像图 ...

  5. Spring 让 LOB 数据操作变得简单易行,LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型

    转自:https://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/index.html 概述 LOB 代表大对象数据,包括 BLOB 和 CL ...

  6. CLOB、BLOB , CLOB与BLOB的区别

    CLOB 定义 数据库中的一种保存文件所使用的类型. Character Large Object SQL 类型 CLOB 在 JavaTM 编程语言中的映射关系.SQL CLOB 是内置类型,它将字 ...

  7. JDBC 能否处理 Blob 和 Clob?

    Blob 是指二进制大对象(Binary Large Object),而 Clob 是指大字符对象 (Character Large Objec),因此其中 Blob 是为存储大的二进制数据而设计的, ...

  8. oracle中Blob和Clob类型的区别

    BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的的,或者可以直接用LOB字段代替这两个.但是为了更好的管理ORACLE数据库,通常像图 ...

  9. Oracle中Blob和Clob类型的区别与操作

    Oracle中Blob和Clob类型 1.Oracle中Blob和Clob类型的区别 BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的 ...

随机推荐

  1. GDAL——命令使用专题——gdalsrsinfo命令

    GDAL——命令使用专题——gdalsrsinfo命令  前言 GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库. ...

  2. Mdate时间插件

    在做移动端的页面时,用户报名某个活动,需要填写她的出生日期,这时可以用Mdate插件来完成,已达到更好的用户体验 操作很简单,效果也不错,是滑动选择时间的,也有回调函数方便我们使用.只需要在页面中引入 ...

  3. Linux c codeblock的使用(一):新建一个工程

    (1)点击New->Project,出现如下图所示,然后再选择Console application,点击Go (2)点击Next (3)根据自己的需求选择特定的语言(前提是你的系统上有这个语言 ...

  4. flask基础--第二篇

    1.Flask中的HTTPResponse,Redirect, render #导入render_template和redirect from flask import Flask,render_te ...

  5. 关于css3 渐变色

    渐变色在现在来说非常的常用:(注意渐变色只能给背景加 不能给边框加) 方法:-webkit-linear-gradient() 括号里面第一个值为渐变色的开始方向,第二个值为开始的颜色,中间用逗号隔开 ...

  6. 数据结构复习之Vector

    /** * The number of times this list has been <i>structurally modified</i>. * Structural ...

  7. layui从子iframe打开父iframe的tab选项卡

    数据表格字段: {field: 'novelId', title: '小说ID',width:100,templet: '<div><a href="javascript: ...

  8. mybatis源码解析之Configuration加载(一)

    概要 上一篇,我们主要搭建了一个简单的环境,这边我们主要来分析下mybatis是如何来加载它的配置文件Configuration.xml的. 分析 public class App { public ...

  9. redis应用-分布式锁

    一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去.如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个操作不是原子的. set lock:cod ...

  10. JavaScript||什么是面向对象

    什么是对象&面向对象 对象 是一个整体,对外提供功能.例:一个手机 电脑. 面向对象 使用的时候只关注提供的功能不关注内部的细节. 面向对象有三大特点: 抽象:将问题需求抽象出来 例:一个员工 ...