String sqlCount = "select count(id) as allcount from guestbook";//guestbook是表名
public class RecordCount {
    //当前页的页码
    private int totalPageNumber;
    public int getTotalPageNumber() {
        return totalPageNumber;
    }
    public void setTotalPageNumber(int totalPageNumber) {
        this.totalPageNumber = totalPageNumber;
    }
}
Context initContext;
private DataSource ds;
try {
        initContext = new InitialContext();
        ds = (DataSource) initContext.lookup("java:/comp/env/jdbc/oracleds");
    } catch (NamingException e) {
        e.printStackTrace();
    }
//查询
QueryRunner qr = new QueryRunner(ds);
        List result = null;
        try {
            result = (List)qr.query(sqlCount, null, new BeanListHandler(RecordCount.class));//RecordCount是专门为得到记录数编写的类        } catch (SQLException e) {
            e.printStackTrace();
        }
用这样的方式直接查询表中的记录是没有问题的,根据表的不同RecordCount这个类做相应的修改,但是我要将表中的有多少记录查出来,请问该怎么做,用传统的数据库访问方式是很容易得到的,我想用DBUtiles组件中的方法,请教各位高手了。。

解决方案 »

  1.   

    DBUtiles组件,不是所有人都知道这具体是什么?不同的人可以写出不同的DBUtiles组件
      

  2.   

    我是在apache的官方网站上面下的,貌似这个组件很流行,如果这样不行的话我就只能将数据库里面的所有记录查询出来保存到一个 List中,然后求list的size方法这样来计算记录数了,但是我想直接查询出数据库的记录数,保存到一个BeanListHandler类的对象的方法中,直接调用这个方法
      

  3.   

    QueryRunner qr = new QueryRunner(ds);
    int result = -1;
    try {
    result = (Integer)qr.query(sqlCount, null, new ScalarHandler(1));
    } catch (SQLException e) {
    e.printStackTrace();
    }
      

  4.   

    DBUtils用的实在是不多,jdbcTemplate更好用一点
      

  5.   


    兄台你的方法我测试过了,执行到result = (Integer)qr.query(sqlCount, null, new ScalarHandler(1));就出错了
      

  6.   

    QueryRunner qr = new QueryRunner(ds);
    int result = -1;
    try {
    result = (Integer)qr.query(sqlCount, new ScalarHandler());
    } catch (SQLException e) {
    e.printStackTrace();
    }