請教大家了,JAVA讀取oracle的number(9)的資料欄位讀出來是什麼型別

jacal發表於2006-08-29
有一個新聞表T_NEWS中的DOCHITS欄位設定為
create table t_news(
... ...
dochits number(9),
... ...
)
在java,採用jdon的框架,
程式碼如下:

  public void setNewsAccessCount(String newsid) throws SQLException {

         String GET_HITS = "select DOCHITS from T_NEWS where NEWSID=?";
        List queryParams = new ArrayList();
        System.out.println("newsid = "+newsid);
        queryParams.add(newsid);
        Long ret = null;
        try {
            List list = jdbcTempSource.getJdbcTemp().queryMultiObject(
                    queryParams,
                    GET_HITS);
            Iterator iter = list.iterator();
            if (iter.hasNext()) {
                Map map = (Map) iter.next();
                ret = (Long) map.get("DOCHITS");
            }
            if (ret!=null) {
                ret = new Long(ret.longValue() + 1);
            }else {
                ret = new Long(1);
            }
            if(ret==null) {
                throw new SQLException("Counld not get DOCHITS value.");
            }else{
                System.out.println(ret.longValue());
            }
          
          // String updatesql = "update T_NEWS set DOCHITS=? WHERE NEWSID=?";
          // queryParams.clear();
          // queryParams.add(ret);
          // queryParams.add(newsid);

         //  jdbcTempSource.getJdbcTemp().operate(queryParams, updatesql);


        } catch (Exception e) {
            logger.error(e);
            throw new SQLException("SQLException: "+ e.getMessage());
        }
     }

丟擲異常:java.lang.ClassCastException
我分析應該是ret = (Long) map.get("DOCHITS");這行轉換資料型別丟擲的異常,但一直不知道該怎麼做。

相關文章