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

📄 resultsetcollection.java

📁 一个java生成自动生成Excel
💻 JAVA
字号:
package net.sf.jxls.report;import java.sql.ResultSet;import java.sql.SQLException;import java.util.AbstractCollection;import java.util.Iterator;import org.apache.commons.beanutils.ResultSetDynaClass;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/** * Allows JDBC ResultSet to be used with XLSTransformer * Note! This is very basic implementation just to give an example of how this can be done. * You may want to create your own implementation to use advanced features of some specific jdbc driver for example. * @author Leonid Vysochyn */public class ResultSetCollection extends AbstractCollection {    protected final Log log = LogFactory.getLog(getClass());    ResultSet resultSet;    ResultSetDynaClass rsDynaClass;    private boolean lowerCase = true;    private int numberOfRows;    /**     * Construct a new ResultSetCollection for the specified ResultSet.     * The property names corresponding to column names in the result set will be lower cased.     *     * @param resultSet - The result set to be wrapped     * @throws SQLException         - if the metadata for this result set cannot be introspected     * @throws NullPointerException - if resultSet  is null     */    public ResultSetCollection(ResultSet resultSet) throws SQLException, NullPointerException {        this.resultSet = resultSet;        rsDynaClass = new ResultSetDynaClass(resultSet);        try {            setNumberOfRows();        } catch (SQLException e) {            log.error("Can't get number of ResultSet records. Try to pass it to a corresponding constructor", e);            throw e;        }    }    /**     * Construct a new ResultSetCollection for the specified ResultSet.     *     * @param resultSet - The result set to be wrapped     * @param lowerCase - Should property names be lower cased?     * @throws SQLException         - if the metadata for this result set cannot be introspected     * @throws NullPointerException - if resultSet  is null     */    public ResultSetCollection(ResultSet resultSet, boolean lowerCase) throws SQLException, NullPointerException {        this.resultSet = resultSet;        this.lowerCase = lowerCase;        rsDynaClass = new ResultSetDynaClass(resultSet, lowerCase);        try {            setNumberOfRows();        } catch (SQLException e) {            log.error("Can't get number of ResultSet records. Try to pass it to a corresponding constructor");            throw e;        }    }    /**     * Construct a new ResultSetCollection for the specified ResultSet.     * The property names corresponding to column names in the result set will be lower cased.     *     * @param resultSet    - The result set to be wrapped     * @param numberOfRows - The number of rows in result set     * @throws SQLException         - if the metadata for this result set cannot be introspected     * @throws NullPointerException - if resultSet  is null     */    public ResultSetCollection(ResultSet resultSet, int numberOfRows) throws SQLException, NullPointerException {        this.resultSet = resultSet;        this.numberOfRows = numberOfRows;        rsDynaClass = new ResultSetDynaClass(resultSet, lowerCase);    }    /**     * Construct a new ResultSetCollection for the specified ResultSet.     *     * @param resultSet    - The result set to be wrapped     * @param numberOfRows - The number of rows in result set     * @param lowerCase    - Should property names be lower cased?     * @throws SQLException         - if the metadata for this result set cannot be introspected     * @throws NullPointerException - if resultSet  is null     */    public ResultSetCollection(ResultSet resultSet, int numberOfRows, boolean lowerCase) throws SQLException, NullPointerException {        this.lowerCase = lowerCase;        this.resultSet = resultSet;        this.numberOfRows = numberOfRows;        rsDynaClass = new ResultSetDynaClass(resultSet, lowerCase);    }    protected void setNumberOfRows() throws SQLException {        if (resultSet != null) {            resultSet.last();            numberOfRows = resultSet.getRow();            resultSet.beforeFirst();        }    }    public int size() {        return numberOfRows;    }    public Iterator iterator() {        return rsDynaClass.iterator();    }    public boolean isLowerCase() {        return lowerCase;    }}

⌨️ 快捷键说明

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