免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: foxzhu

jsp頁面為何在運行時讓sql server占用了很大的內存? [复制链接]

论坛徽章:
0
发表于 2006-03-11 15:49 |显示全部楼层
重起tomcat

论坛徽章:
0
发表于 2006-03-11 17:07 |显示全部楼层
kakasi老哥﹐剛才是因為包的原因造成信息提示有誤﹐當我正確引用包后發現BufferedResultSet編譯都正常﹐但jsp調用rs方法時,tomcat提示數組越界
            for (int i = 0; i < colNum; i++)
            {
                this.dbFields[i] = metaData.getColumnName(i);
                lineMap.put(this.dbFields[i],rs.getObject(this.dbFields[i]));
            }
i改為1后才能正常﹗且在我的系統每個頁面都出現空指針異常﹐望大哥有空幫我看一下!

jad.rar

3.9 KB, 下载次数: 26

java文件

论坛徽章:
0
发表于 2006-03-11 23:21 |显示全部楼层
原帖由 foxzhu 于 2006-3-11 18:07 发表
        for (int i = 0; i < colNum; i++)
            {
                this.dbFields = metaData.getColumnName(i+1);
                lineMap.put(this.dbFields,rs.getObject(this.dbFields));
            }

            { ...



抱歉,这个类随手写完没有环境也没测试;红色地方也有问题,我现在在家里,机器上没有环境,你再试一次

论坛徽章:
0
发表于 2006-03-12 20:49 |显示全部楼层
kakasi老哥,星期天還來打擾﹐真的不好意思﹐因為這個程式再過几天必須得上線﹐所以只能再次打擾了﹗望諒解啦
現在bean部分大體沒有問題了﹐只是在調用resultSet的方法時還是會出各樣各樣的錯誤﹕
    public String getString(String columnName) throws SQLException
    {
        Map dataMap = (Map) this.data.get(currentIndex);
        return (String)dataMap.get(columnName);
    }
   這個方法調用正常的字符串型是沒問題的﹐但未經改寫的rs的getString還有一個功能就是﹕即使是Int型的也可以用getString調出來﹐而這一點在我們的方法中沒有考慮到﹐所以只要我系統中用getString調用sql數據庫中的numeric型數據就會出錯﹐不知怎樣改寫getString方法﹗
    public int getInt(String columnName) throws SQLException
    {
        Map dataMap = (Map) this.data.get(currentIndex);
        return Integer.parseInt((String) dataMap.get(columnName));
    }
   這個方法好像還是有點問題﹐目前調用還沒有成功過﹗
  望老哥有時間幫我分析改寫一下﹗謝謝

论坛徽章:
0
发表于 2006-03-12 21:59 |显示全部楼层
public String getString(String columnName) throws SQLException
    {
        Map dataMap = (Map) this.data.get(currentIndex);
        return String.valueOf(dataMap.get(columnName));
    }


public int getInt(String columnName) throws SQLException
    {
        Map dataMap = (Map) this.data.get(currentIndex);
        return Integer.parseInt(String.valueOf( dataMap.get(columnName)));
    }

论坛徽章:
0
发表于 2006-03-13 08:18 |显示全部楼层
問題已經解決﹐感謝kakasi老哥!
executeQuery()中如果傳入含distinct的語句﹐返回的結果無法取得唯一值﹐例select distinct xm from base_user 與select xm from base_user返回的結果竟然是一樣的。請問老哥這是咋了?

executeQuery()中如果傳入諸如﹕select isnull(max(xh),'0') as xh from table_name 等查詢語句時﹐也會報NullPointerException
錯誤﹐這是什么原因呢?TOMCAT提示的錯誤是這樣的﹕executeQuery False():[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]資料行'table_name.id'在選取清單中無效﹐因為它并未包含在匯總函數中且沒有GROUP BY子句.

[ 本帖最后由 foxzhu 于 2006-3-13 10:14 编辑 ]

论坛徽章:
0
发表于 2006-03-13 14:41 |显示全部楼层
原帖由 foxzhu 于 2006-3-13 09:18 发表
executeQuery()中如果傳入含distinct的語句﹐返回的結果無法取得唯一值﹐例select distinct xm from base_user 與select xm from base_user返回的結果竟然是一樣的。請問老哥這是咋了?

xm唯一
executeQuery()中如果傳入諸如﹕select isnull(max(xh),'0') as xh from table_name 等查詢語句時﹐也會報NullPointerException
錯誤﹐這是什么原因呢?TOMCAT提示的錯誤是這樣的﹕executeQuery False():[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]資料行'table_name.id'在選取清單中無效﹐因為它并未包含在匯總函數中且沒有GROUP BY子句.

sql错误,自己调查一下sql语法

论坛徽章:
0
发表于 2006-03-13 14:48 |显示全部楼层
語句在sql sever查詢分析器中得到的結果都是對的﹐但經過executeQuery()得到的結果就變啦﹗上述兩種都是這樣的

论坛徽章:
0
发表于 2006-03-13 15:37 |显示全部楼层
原帖由 foxzhu 于 2006-3-13 15:48 发表
語句在sql sever查詢分析器中得到的結果都是對的﹐但經過executeQuery()得到的結果就變啦﹗上述兩種都是這樣的


SQL问题自己调试一下,从信息上看是SQL语法错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP