⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resultsetpage.java

📁 以前写的通用数据库接口
💻 JAVA
字号:
package util.database.datalist;import java.sql.*;/** * Page实现了DataListHandler。 * * 用于操作ResultSetDataList对象,对查询结果集进行分页显示。在进行显示的期间,必须 * 保持数据库连接Connection和结果集ResultSet没有关闭。 * 基本使用方法举例: * <pre> *              int index = 4, count = 10;//显示第5到第14条记录 *              Connection conn = Pool.getConnection(); *              //(1)使用一个QueryDAO的具体子类来初始化页对象 *              ResultSetQueryDAO dao = new ResultSetQueryDAO(); *              ResultSetPage page = new ResultSetPage(conn, dao); * *              //(2)或者直接使用一个ResultSet对象来初始化页对象 *              //ResultSet rs = ...; *              //ResultSetPage page = new ResultSetPage(conn, rs); * *              //需要显示的当前页chunk *              DataList chunk = page.getListChunk(index, count); *              //当前页的前后是否还有记录,用于显示PRVEIOUS和NEXT按钮 *              boolean hasPrevious = page.hasPrevious(); *              boolean hasNext = page.hasNext(); *              //遍历显示当前页的记录 *              DataListIterator it = chunk.iterator(); *              while (it.hasNext()) *              { *                  String[] valuesOfRow = it.next(); *                  for(int i = 0; i < valuesOfRow.lengtn; i++) *                      System.out.println(valuesOfRow[i]); *              } * * </pre> * * @author Michael Zeng * @version 1.0 September 23, 2002 * * @see QueryDAO * @see DataListIterator */public class ResultSetPage implements DataListHandler{    private Connection conn = null;    private ResultSet rs = null;    private ResultSetDataList dl = null;    private RowMapper mapper = null;    private QueryDAO dao = null;    private int indexOfDataList = 0, countPerPage = 0;    /**     * 构造函数,提供用于查询的DAO具体对象。     *     * @param conn 数据库连接     * @param dao 用于查询的DAO具体对象     * @throws SQLException     *     */    public ResultSetPage(Connection conn, QueryDAO dao) throws SQLException    {        this.conn = conn;        //使用使用DAO具体对象查询        this.rs = (ResultSet)dao.doQuery(conn);        initiateDataList();    }    /**     * 构造函数,直接提供查询的结果集。     *     * @param conn 数据库连接     * @param rs 查询的结果集     * @throws SQLException     */    public ResultSetPage(Connection conn, ResultSet rs) throws SQLException    {        this.conn = conn;        this.rs = rs;        initiateDataList();    }    /**     * 得到被查询的字段名称数组     *     * @return String[] 字段名称数组     */    public String[] getColumns()    {        return mapper.getRowColumns();    }    /**     * 得到查询结果的一个子集     *     * @param startIndex 子集的起始位置, 从0开始     * @param count 子集的个数     * @return Datalist 返回一个子集     * @throws Exception     */    public DataList getListChunk(int startIndex, int count) throws Exception    {        if(dl == null)            throw new Exception("还没有执行查询或者查询过程出现异常!");        indexOfDataList = Math.abs(startIndex);        countPerPage = Math.abs(count);        return new ResultSetDataListChunk(dl, indexOfDataList, countPerPage);    }    /**     * 取得整个查询结果的大小,功能类似于java.util.List.size()     *     * @return size 查询结果的大小     * @throws SQLException     */    public int size() throws SQLException    {        if(dl == null)            throw new SQLException("还没有执行查询或者查询过程出现异常!");        return dl.size();    }    /**     * 检查子集的前面是否还有查询结果     *     * @return boolean true表示前面还有查询结果     */    public boolean hasPrevious()    {        if(indexOfDataList == 0)            return false;        else            return true;    }    /**     * 检查子集的后面是否还有查询结果     *     * @return boolean true表示后面还有查询结果     * @throws SQLException     */    public boolean hasNext() throws SQLException    {        if(indexOfDataList + countPerPage >= dl.size())            return false;        else            return true;    }    /**     * 关闭对象     * @throws SQLException     */    public void close() throws SQLException    {        if(rs != null)        {            rs.close();            rs = null;        }        mapper = null;    }    /**     * helper方法,设置印射,生成包含结果计的ResultSetDataList对象     *     * @throws SQLException     */    private void initiateDataList() throws SQLException    {        //设置印射,生成包含结果计的ResultSetDataList对象        mapper = new ResultSetRowMapper(rs);        dl = new ResultSetDataList(mapper, conn, rs);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -