首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

有关搜索的存储过程调用解决办法

2011-12-27 
有关搜索的存储过程调用我写了一个存储过程,是用来搜索产品的,定义了@keyword(要搜索的关键字)@pageNo(当

有关搜索的存储过程调用
我写了一个存储过程,是用来搜索产品的,定义了@keyword(要搜索的关键字)@pageNo(当前页数)、@pageSize(每页的数据行数)、@pageCount(总页数)、@TotalRows(表中数据的总行数),在数据库的代码查询分析器里可以执行,但用到页面上,却提示我搜索到0条记录,总页数为0页,我的代码如下:
        public   ArrayList   getSearch(String   keyword,   int   pageNo,   int   pageSize)   {

                ArrayList   al   =   new   ArrayList();
                Connection   conn   =   null;
                DataBaseConn   dbc   =   new   DataBaseConn();
                conn   =   dbc.getConnection();
                ResultSet   rs   =   null;

                try   {

                        CallableStatement   cs   =   conn.prepareCall(
                                        "{call   proc_search(?,?,?,?,?)} ");
                        cs.setString(1,   keyword);
                        cs.setInt(2,   pageNo);
                        cs.setInt(3,   pageSize);
                        cs.registerOutParameter(4,   Types.INTEGER);
                        cs.registerOutParameter(5,   Types.INTEGER);
                        rs   =   cs.executeQuery();
                        while   (rs.next())   {
                                CommodityBean   cb   =   new   CommodityBean();

//省略。。。。

                                al.add(cb);
                        }
                        pageCount   =   cs.getInt(4);
                        totalRows   =   cs.getInt(5);

                        return   al;
                }   catch   (SQLException   ex)   {
                }
                return   al;
        }
        public   int   getPageCount()   {
                return   pageCount;
        }

        public   int   getTotalRows()   {
                return   totalRows;
        }



请高手们帮我分析一下,万分感激!!!

[解决办法]
CommodityBean cb = null
...

while(rs.next()){
cb.setXXX(...);
al.add(cb);
}

在while内创建对象的话,就变成每循环一次,创建一次对象,而最终你add到arraylist中的是最后一次创建的对象。

热点排行