Clob类型转换成String类型详解编程语言

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; 
	} 
 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/14319.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论