读书人

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

发布时间: 2011-12-27 22:22:54 作者: rapoo

有关搜索的存储过程调用
我写了一个存储过程,是用来搜索产品的,定义了@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中的是最后一次创建的对象。

读书人网 >Java Web开发

热点推荐