您的位置:首页 > 其它

Clob类型转换成String类型

2014-02-23 18:55 357 查看
oracle中表结构如下:

create table GRID_RESOURCE
(
ID         VARCHAR2(50),
CNNAME     VARCHAR2(50),
TYPE       VARCHAR2(50),
PARENTID   VARCHAR2(50),
VIEWWIDTH  VARCHAR2(50),
REQUESTURL VARCHAR2(256),
COUNTSQL   CLOB,
ISDISPLAY  VARCHAR2(50),
TREEINDEX  VARCHAR2(256),
TABLES     VARCHAR2(256),
NOTE3      VARCHAR2(256)
)
COUNTSQL字段为CLOB类型,索引为6

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.sql.Clob;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class T {

public static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new Configuration().configure()
.buildSessionFactory();
} catch (Throwable ex) {
throw new ExceptionInInitializerError(ex);
}
}

/**
* @param args
*/
public static void main(String[] args) {
new T().getList();
}

public void getList() {
String querySQL = "select * from GRID_RESOURCE";
String countSQL = "";
List<Object[]> list = new ArrayList<Object[]>();
// List o_list = new ArrayList();
try {
list = sessionFactory.openSession().createSQLQuery(querySQL).list();
for (Object[] obj : list) {
Map<String, Object> map = new HashMap<String, Object>();
Clob sc = (Clob) obj[6];
countSQL = ClobToString(sc);
System.out.println(countSQL);
}
// 另一个遍历方法
/*
* for(Object obj:o_list){ Object oo[] = (Object[])obj;
* System.out.println(oo[6]); }
*/
} catch (Exception e) {
e.printStackTrace();
}
}

// 将字Clob转成String类型
public String ClobToString(Clob sc) throws SQLException, IOException {
String reString = "";
Reader is = sc.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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: