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

📄 tablerowiterator.java

📁 dspace 用j2ee架构的一个数字图书馆.开源程序
💻 JAVA
字号:
/* * TableRowIterator.java * * Version: $Revision: 1.7 $ * * Date: $Date: 2005/04/20 14:22:43 $ * * Copyright (c) 2002-2005, Hewlett-Packard Company and Massachusetts * Institute of Technology.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of the Hewlett-Packard Company nor the name of the * Massachusetts Institute of Technology nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */package org.dspace.storage.rdbms;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;/** * Represents the results of a database query *  * @author Peter Breton * @version $Revision: 1.7 $ */public class TableRowIterator{    /**     * Results from a query     */    private ResultSet results;    /**     * Statement used to submit the query     */    private Statement statemt = null;    /**     * The name of the RDBMS table     */    private String table;    /**     * True if there is a next row     */    private boolean hasNext = true;    /**     * True if we have already advanced to the next row.     */    private boolean hasAdvanced = false;    /**     * Constructor     *      * @param results -     *            A JDBC ResultSet     */    TableRowIterator(ResultSet results)    {        this(results, null);        statemt = null;    }    /**     * Constructor     *      * @param results -     *            A JDBC ResultSet     * @param table -     *            The name of the table     */    TableRowIterator(ResultSet results, String table)    {        this.results = results;        this.table = table;        statemt = null;    }    /**     * Finalize -- this method is called when this object is GC-ed.     */    public void finalize()    {        close();    }    /**     * setStatement -- this method saves the statement used to do the query. We     * must keep this so that the statement can be closed when we are finished.     *      * @param st -     *            The statement used to do the query that created this     *            TableRowIterator     */    public void setStatement(Statement st)    {        statemt = st;    }    /**     * Advance to the next row and return it. Returns null if there are no more     * rows.     *      * @return - The next row, or null if no more rows     * @exception SQLException -     *                If a database error occurs while fetching values     */    public TableRow next() throws SQLException    {        if (results == null)        {            return null;        }        if (!hasNext())        {            return null;        }        hasAdvanced = false;        return DatabaseManager.process(results, table);    }    /**     * Return true if there are more rows, false otherwise     *      * @return - true if there are more rows, false otherwise     * @exception SQLException -     *                If a database error occurs while fetching values     */    public boolean hasNext() throws SQLException    {        if (results == null)        {            return false;        }        if (hasAdvanced)        {            return hasNext;        }        hasAdvanced = true;        hasNext = results.next();        // No more results        if (!hasNext)        {            close();        }        return hasNext;    }    /**     * Saves all the values returned by iterator into a list.     *      * @return - A list of all the values returned by the iterator.     * @exception SQLException -     *                If a database error occurs while fetching values     */    public List toList() throws SQLException    {        List resultsList = new ArrayList();        while (hasNext())        {            resultsList.add(next());        }        return resultsList;    }    /**     * Close the Iterator and release any associated resources     */    public void close()    {        try        {            results.close();            if (results != null)                results.close();        }        catch (SQLException sqle)        {        }        // try to close the statement if we have one        try        {            if (statemt != null)                statemt.close();            statemt = null;        }        catch (SQLException sqle)        {        }    }}

⌨️ 快捷键说明

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