请教一下clob字段的读取问题

09-06-03 hgeng
按照simple的例子JDBCDAO.java修改的

数据库中的clob字段通过

List list = pageIteratorSolverOfCategory.queryMultiObject(queryParams,

GET_FIELD);

得到的list如下:

“[{CATEGORYNAME=root, DESCRIPTION=java.io.BufferedReader@fd5428, LEVEL=root}]”DESCRIPTION字段是CLOB字段,如何才能读出来?

Iterator iter = list.iterator();

if (iter.hasNext()) {

ret = new CategoryModel();

Map map = (Map) iter.next();

String s1=(String) map.get("CATEGORYNAME");

ret.setCategoryName(s1);

ret.setDescription((String)map.get("DESCRIPTION"));

到这里就出错抛出异常,跳到catch(Exception se)无法赋值。

ret.setLevel((String) map.get("LEVEL"));

}

} catch (Exception se) {

}

请问该怎样操作clob字段?数据库选用H2数据库。

hgeng
2009-06-04 08:22
改了一下就用jdbc来获取就行了

Connection conn = null;

PreparedStatement prepstmt = null;

CategoryModel ret =new CategoryModel();

try {

conn=dataSource.getConnection();

logger.debug(" enter Category:" + category);

String GET_FIELD = "select * from Category where CategoryName ='"+ category+"'";

prepstmt = conn.prepareStatement(GET_FIELD);

ResultSet rs = prepstmt.executeQuery();

if (rs.next()){

String categoryName = (String)rs.getString("categoryName");

String description=(String)rs.getString("description");

description 是clob字段,本来想用rs.getclob(),也不行,反而是用rs.getString()可以了,不知道是怎么回事?

String level=(String)rs.getString("level");

ret.setCategoryName(categoryName);

ret.setDescription(description);

ret.setLevel(level);

}

另问一下,直接用jdbc的方法,会有什么不足之处?

猜你喜欢