public Hashtable queryFirst(String sql) {
Hashtable table = new Hashtable();
ResultSet rs = null;
try {
rs = db.executeSelect(sql);
if (rs != null && rs.next()) {
Object o=null; 
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
o=rs.getObject(i);
table.put(rs.getMetaData().getColumnName(i).toUpperCase(),
o == null ? "" : o);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close(rs);
}
//System.out.println(sql);
return table;
}public Hashtable getHelpInfomation() {
Hashtable table = new Hashtable();
ArrayList list = new ArrayList();

String sql = "SELECT ID,HTMLPATH,TITLE,CONTENT,AUTHOR,KIND_ID,CLICK,TO_CHAR(IN_DATE,'YYYY-MM-DD HH24:MI:SS') AS IN_DATE FROM HELP_INFO where KIND_ID=141 order by in_date desc";
table = queryFirst(sql, list);
try{
String content = db.clob2String((Clob) table.get("CONTENT"));
table.put("CONTENT", content);
content = null;
}catch(Exception e){}
helpDirId = table.get("KIND_ID").toString();
sql = null;
list.clear();
return table;
}
public String clob2String(Clob content) {
String strTmp = "";
try {
BufferedReader in = new BufferedReader(content.getCharacterStream());
StringBuffer stringBuffer = new StringBuffer();
String tmpStr = "";
tmpStr = in.readLine();
stringBuffer.append(tmpStr);
while (in.ready()) {
tmpStr = in.readLine();
stringBuffer.append(tmpStr);
}
in.close();
in = null;
strTmp = stringBuffer.toString();
stringBuffer = null;
} catch (Exception e) {
return "";
}
return strTmp;
}
以上是正确的转化方法如果是想用ArrayList转化怎么办呢 请各位高手指教???
public ArrayList getHelpList1(String dirId) {
ArrayList list = new ArrayList();
list.add(dirId);
String sql = "SELECT * FROM (SELECT ID,TITLE,CONTENT,HTMLPATH,TO_CHAR(IN_DATE,'YYYY-MM-DD HH24:MI:SS') AS IN_DATE FROM HELP_INFO WHERE KIND_ID=? ORDER BY IN_DATE DESC) WHERE ROWNUM<=10";
ArrayList list1 = this.queryAll(sql, list);
                     //想在此处把 CONTENT 的clob转化为string 怎么解决啊 请指教???
list.clear();
return list1;
}

解决方案 »

  1.   

    String temp=clob2String(list1.get(*));
    list1.RemoveAt(*);
    list1.insert(*,temp);*代表content在list1中的索引
      

  2.   

    list1.get(*)得到的是两条sql记录 比如 {ID=29 name=“张三”content=“”} {ID=30 name=“李四”content=“”} 这样的 我想得到是CONTENT字段内容 因为只有该字段是clob的 请指教
      

  3.   

    你不能在this.queryAll(sql, list)这个方法里调用转换方法吗?
      

  4.   

    list.get(0)={ID=30, CONTENT=oracle.sql.CLOB@15eba99, IN_DATE=2010-09-20 10:21:08, TITLE=高级网页技术开发经理, HTMLPATH=/html/help/2010/09/20/30.html}
    list.get(1)= {ID=29, CONTENT=oracle.sql.CLOB@2cac21, IN_DATE=2010-09-20 10:18:55, TITLE=网页设计师, HTMLPATH=/html/help/2010/09/20/29.html}
    用list.get(*)只能得到以上结果 如果想进一步的到里面的CONTENT 内容 该如何呢 
    为什么HashTable可以 ArrayList就这么难呢???