RowData.java
上传用户:sxlinghang
上传日期:2022-07-20
资源大小:1405k
文件大小:6k
源码类别:

数据库编程

开发平台:

Java

  1. /*
  2.    Copyright (C) 2002 MySQL AB
  3.       This program is free software; you can redistribute it and/or modify
  4.       it under the terms of the GNU General Public License as published by
  5.       the Free Software Foundation; either version 2 of the License, or
  6.       (at your option) any later version.
  7.       This program is distributed in the hope that it will be useful,
  8.       but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10.       GNU General Public License for more details.
  11.       You should have received a copy of the GNU General Public License
  12.       along with this program; if not, write to the Free Software
  13.       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  14.  */
  15. package com.mysql.jdbc;
  16. import java.sql.SQLException;
  17. /**
  18.  * This interface abstracts away how row data is accessed by
  19.  * the result set. It is meant to allow a static implementation
  20.  * (Current version), and a streaming one.
  21.  *
  22.  * @author dgan
  23.  */
  24. public interface RowData {
  25.     /**
  26.      * What's returned for the size of a result set
  27.      * when its size can not be determined.
  28.      */
  29.     public static final int RESULT_SET_SIZE_UNKNOWN = -1;
  30.     /**
  31.      * Returns true if we got the last element.
  32.      *
  33.      * @return true if after last row
  34.      * @throws SQLException if a database error occurs
  35.      */
  36.     boolean isAfterLast() throws SQLException;
  37.     /**
  38.      * Only works on non dynamic result sets.
  39.      *
  40.      * @param index row number to get at
  41.      * @return row data at index
  42.      * @throws SQLException if a database error occurs
  43.      */
  44.     byte[][] getAt(int index) throws SQLException;
  45.     /**
  46.      * Returns if iteration has not occured yet.
  47.      *
  48.      * @return true if before first row
  49.      * @throws SQLException if a database error occurs
  50.      */
  51.     boolean isBeforeFirst() throws SQLException;
  52.     /**
  53.      * Moves the current position in the result set to
  54.      * the given row number.
  55.      *
  56.      * @param rowNumber row to move to
  57.      * @throws SQLException if a database error occurs
  58.      */
  59.     void setCurrentRow(int rowNumber) throws SQLException;
  60.     /**
  61.      * Returns the current position in the result set as
  62.      * a row number.
  63.      *
  64.      * @return the current row number
  65.      * @throws SQLException if a database error occurs
  66.      */
  67.     int getCurrentRowNumber() throws SQLException;
  68.     /**
  69.      * Returns true if the result set is dynamic.
  70.      *
  71.      * This means that move back and move forward won't work
  72.      * because we do not hold on to the records.
  73.      *
  74.      * @return true if this result set is streaming from the server
  75.      * @throws SQLException if a database error occurs
  76.      */
  77.     boolean isDynamic() throws SQLException;
  78.     /**
  79.      * Has no records.
  80.      *
  81.      * @return true if no records
  82.      * @throws SQLException if a database error occurs
  83.      */
  84.     boolean isEmpty() throws SQLException;
  85.     /**
  86.      * Are we on the first row of the result set?
  87.      *
  88.      * @return true if on first row
  89.      * @throws SQLException if a database error occurs
  90.      */
  91.     boolean isFirst() throws SQLException;
  92.     /**
  93.      * Are we on the last row of the result set?
  94.      *
  95.      * @return true if on last row
  96.      * @throws SQLException if a database error occurs
  97.      */
  98.     boolean isLast() throws SQLException;
  99.     /**
  100.      * Adds a row to this row data.
  101.      *
  102.      * @param row the row to add
  103.      * @throws SQLException if a database error occurs
  104.      */
  105.     void addRow(byte[][] row) throws SQLException;
  106.     /**
  107.      * Moves to after last.
  108.      *
  109.      * @throws SQLException if a database error occurs
  110.      */
  111.     void afterLast() throws SQLException;
  112.     /**
  113.      * Moves to before first.
  114.      *
  115.      * @throws SQLException if a database error occurs
  116.      */
  117.     void beforeFirst() throws SQLException;
  118.     /**
  119.      * Moves to before last so next el is the last el.
  120.      *
  121.      * @throws SQLException if a database error occurs
  122.      */
  123.     void beforeLast() throws SQLException;
  124.     /**
  125.      * We're done.
  126.      *
  127.      * @throws SQLException if a database error occurs
  128.      */
  129.     void close() throws SQLException;
  130.     /**
  131.      * Returns true if another row exsists.
  132.      *
  133.      * @return true if more rows
  134.      * @throws SQLException if a database error occurs
  135.      */
  136.     boolean hasNext() throws SQLException;
  137.     /**
  138.      * Moves the current position relative 'rows' from
  139.      * the current position.
  140.      *
  141.      * @param rows the relative number of rows to move
  142.      * @throws SQLException if a database error occurs
  143.      */
  144.     void moveRowRelative(int rows) throws SQLException;
  145.     /**
  146.      * Returns the next row.
  147.      *
  148.      * @return the next row value
  149.      * @throws SQLException if a database error occurs
  150.      */
  151.     byte[][] next() throws SQLException;
  152.     /**
  153.      * Removes the row at the given index.
  154.      *
  155.      * @param index the row to move to
  156.      * @throws SQLException if a database error occurs
  157.      */
  158.     void removeRow(int index) throws SQLException;
  159.     /**
  160.      * Only works on non dynamic result sets.
  161.      *
  162.      * @return the size of this row data
  163.      * @throws SQLException if a database error occurs
  164.      */
  165.     int size() throws SQLException;
  166.     
  167. /**
  168.  * Set the result set that 'owns' this RowData
  169.  * 
  170.  * @param rs the result set that 'owns' this RowData
  171.  */
  172. void setOwner(ResultSet rs);
  173. /**
  174.  * Returns the result set that 'owns' this RowData
  175.  * 
  176.  * @return the result set that 'owns' this RowData
  177.  */
  178. ResultSet getOwner();
  179. }