Một số thủ thuật trong lập trình Java:

Từ Java 5, Sun có bổ sung một số interface cho Rowset interface, chúng được extend từ CachedRowSet, và ta có thể phân trang với CachedRowSet Interface.

Để lấy ra tổng số bản ghi từ sử dụng câu lệnh sql “select count(table) from … ”

Lấy lại ResultSet bằng vài câu lệnh sau :

Connection connection = datasource.getConnection() ;
 Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
 ResultSet resultSet = statement.executeQuery(query);

Tạo một đối tượng CachedRowSet bằng câu lệnh sau :

CachedRowSet crs = new CachedRowSetImpl();

Đặt kích thước cho một trang, giả dụ trang có 20 bản ghi :

int pageSize = 20;
 crs.setPageSize(pageSize); //crs.setPageSize(pageSize);

Tính toán bản ghi đầu tiên của trang hiện tại, chẳng hạn trang hiện tại là trang thứ 3.

int currentPage = 3;
crs.populate(resultSet, (currentPage - 1) * pageSize + 1);

Và bây giờ tôi lấy lại các bản thi, chuyển chúng thành đối tượng rồi lưu vào một List.

Lis list = new ArrayList();
  while (resultSet.next()) {
    Object bean = createInstance() ;
    mapper_.mapResultSet(resultSet, bean) ;
    list.add(bean) ;
  }