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

📄 resultset.java

📁 关于jdbc对mysql的官方驱动程序
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
     */

    public InputStream getBinaryStream(int columnIndex) throws java.sql.SQLException
    {
	byte b[] = getBytes(columnIndex);

	if (b != null) {
	    return new ByteArrayInputStream(b);
	}
	return null;                // SQL NULL
    }

    /**
     * The following routines simply convert the columnName into
     * a columnIndex and then call the appropriate routine above.
     *
     * @param columnName is the SQL name of the column
     * @return the column value
     * @exception java.sql.SQLException if a database access error occurs
     */

  
    public String getString(String ColumnName) throws java.sql.SQLException
    {
	return getString(findColumn(ColumnName));
    }
  
    public boolean getBoolean(String ColumnName) throws java.sql.SQLException
    {
	return getBoolean(findColumn(ColumnName));
    }
  
    public byte getByte(String ColumnName) throws java.sql.SQLException
    {
	return getByte(findColumn(ColumnName));
    }

    public short getShort(String ColumnName) throws java.sql.SQLException
    {
	return getShort(findColumn(ColumnName));
    }

    public int getInt(String ColumnName) throws java.sql.SQLException
    {
	return getInt(findColumn(ColumnName));
    }

    public long getLong(String ColumnName) throws java.sql.SQLException
    {
	return getLong(findColumn(ColumnName));
    }
  
    public float getFloat(String ColumnName) throws java.sql.SQLException
    {
	return getFloat(findColumn(ColumnName));
    }

    public double getDouble(String ColumnName) throws java.sql.SQLException
    {
	return getDouble(findColumn(ColumnName));
    }
  
    public BigDecimal getBigDecimal(String ColumnName, int scale) throws java.sql.SQLException
    {
	return getBigDecimal(findColumn(ColumnName), scale);
    }
  
    public byte[] getBytes(String ColumnName) throws java.sql.SQLException
    {
	return getBytes(findColumn(ColumnName));
    }

    public java.sql.Date getDate(String ColumnName) throws java.sql.SQLException
    {
	return getDate(findColumn(ColumnName));
    }
  
    public Time getTime(String ColumnName) throws java.sql.SQLException
    {
	return getTime(findColumn(ColumnName));
    }
  
    public Timestamp getTimestamp(String ColumnName) throws java.sql.SQLException
    {
	return getTimestamp(findColumn(ColumnName));
    }
  
    public InputStream getAsciiStream(String ColumnName) throws java.sql.SQLException
    {
	return getAsciiStream(findColumn(ColumnName));
    }

    public InputStream getUnicodeStream(String ColumnName) throws java.sql.SQLException
    {
	return getUnicodeStream(findColumn(ColumnName));
    }

    public InputStream getBinaryStream(String ColumnName) throws java.sql.SQLException
    {
	return getBinaryStream(findColumn(ColumnName));
    }

    /**
     * The first warning reported by calls on this ResultSet is
     * returned.  Subsequent ResultSet warnings will be chained
     * to this java.sql.SQLWarning.
     *
     * <p>The warning chain is automatically cleared each time a new
     * row is read.
     *
     * <p><B>Note:</B> This warning chain only covers warnings caused by
     * ResultSet methods.  Any warnings caused by statement methods
     * (such as reading OUT parameters) will be chained on the
     * Statement object.
     *
     * @return the first java.sql.SQLWarning or null;
     * @exception java.sql.SQLException if a database access error occurs.
     */

    public java.sql.SQLWarning getWarnings() throws java.sql.SQLException
    {
	return Warnings;
    }
  
    /**
     * After this call, getWarnings returns null until a new warning
     * is reported for this ResultSet
     *
     * @exception java.sql.SQLException if a database access error occurs
     */

    public void clearWarnings() throws java.sql.SQLException
    {
	Warnings = null;
    }

    /**
     * Get the name of the SQL cursor used by this ResultSet
     *
     * <p>In SQL, a result table is retrieved though a cursor that is
     * named.  The current row of a result can be updated or deleted
     * using a positioned update/delete statement that references
     * the cursor name.
     *
     * <p>JDBC supports this SQL feature by providing the name of the
     * SQL cursor used by a ResultSet.  The current row of a ResulSet
     * is also the current row of this SQL cursor.
     *
     * <p><B>Note:</B> If positioned update is not supported, a java.sql.SQLException
     * is thrown.
     *
     * @return the ResultSet's SQL cursor name.
     * @exception java.sql.SQLException if a database access error occurs
     */
  
    public String getCursorName() throws java.sql.SQLException
    {
	throw new java.sql.SQLException("Positioned Update not supported.", "S1C00");
    }

    /**
     * The numbers, types and properties of a ResultSet's columns are
     * provided by the getMetaData method
     *
     * @return a description of the ResultSet's columns
     * @exception java.sql.SQLException if a database access error occurs
     */
  
    public java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException
    {
	return new ResultSetMetaData(Rows, Fields);
    }

    /**
     * Get the value of a column in the current row as a Java object
     *
     * <p>This method will return the value of the given column as a
     * Java object.  The type of the Java object will be the default
     * Java Object type corresponding to the column's SQL type, following
     * the mapping specified in the JDBC specification.
     *
     * <p>This method may also be used to read database specific abstract
     * data types.
     *
     * @param columnIndex the first column is 1, the second is 2...
     * @return a Object holding the column value
     * @exception java.sql.SQLException if a database access error occurs
     */

    public Object getObject(int columnIndex) throws java.sql.SQLException
    {
	Field F;

	if (columnIndex < 1 || columnIndex > Fields.length) {
	    throw new java.sql.SQLException("Column index out of range (" + columnIndex + " > " + Fields.length + ").", "S1002");
	}
	F = Fields[columnIndex - 1];

	if (This_Row[columnIndex - 1] == null) {
            wasNullFlag = true;
	    return null;
	}
       
        wasNullFlag = false;

	switch (F.getSQLType()) {
	case Types.BIT:
	    return new Boolean(getBoolean(columnIndex));
	case Types.TINYINT:
	case Types.SMALLINT:
	case Types.INTEGER:
	    return new Integer(getInt(columnIndex));
	case Types.BIGINT:
	    return new Long(getLong(columnIndex));
	case Types.DECIMAL:
	case Types.NUMERIC:
	    String S = getString(columnIndex);
	    BigDecimal Val;

	    if (S != null) {
		if (S.length() == 0) {
		    Val = new BigDecimal(0);
				
		    return Val;
		}
		try {
		    Val = new BigDecimal(S);
		} 
		catch (NumberFormatException E) {
		    throw new java.sql.SQLException ("Bad format for BigDecimal '" + S + "' in column " + columnIndex + "(" + Fields[columnIndex] + ").", "S1009");
		}
		return Val;
			    
	    }
	    else {
		return null;
	    }
	case Types.REAL:
	case Types.FLOAT:
	    return new Float(getFloat(columnIndex));
	case Types.DOUBLE:
	    return new Double(getDouble(columnIndex));
	case Types.CHAR:
	case Types.VARCHAR:
	case Types.LONGVARCHAR:
	    if (F.isBinary()) {
		return getBytes(columnIndex);
	    }
	    else {
		return getString(columnIndex);
	    }
	case Types.BINARY:
	case Types.VARBINARY:
	case Types.LONGVARBINARY:
	    return getBytes(columnIndex);
	case Types.DATE:
	    return getDate(columnIndex);
	case Types.TIME:
	    return getTime(columnIndex);
	case Types.TIMESTAMP:
	    return getTimestamp(columnIndex);
	default:
	    throw new java.sql.SQLException("Unkown type", "S1009");
	}
    }

    /**
     * Get the value of a column in the current row as a Java object
     *
     *<p> This method will return the value of the given column as a
     * Java object.  The type of the Java object will be the default
     * Java Object type corresponding to the column's SQL type, following
     * the mapping specified in the JDBC specification.
     *
     * <p>This method may also be used to read database specific abstract
     * data types.
     *
     * @param columnName is the SQL name of the column
     * @return a Object holding the column value
     * @exception java.sql.SQLException if a database access error occurs
     */

    public Object getObject(String ColumnName) throws java.sql.SQLException
    {
	return getObject(findColumn(ColumnName));
    }

    /**
     * Map a ResultSet column name to a ResultSet column index
     *
     * @param columnName the name of the column
     * @return the column index
     * @exception java.sql.SQLException if a database access error occurs
     */

    public int findColumn(String ColumnName) throws java.sql.SQLException
    {
	int i;

	if (Driver.debug) {
	    System.out.println("Looking for " + ColumnName);
	}
	for (i = 0 ; i < Fields.length; ++i) {
	    if (Driver.debug) {
		System.out.println(Fields[i].Name);
	    }
	    if (Fields[i].Name.equalsIgnoreCase(ColumnName)) {
		return (i + 1);
	    }
			
	    String FullName = Fields[i].TableName + "." + Fields[i].Name;
			
	    if (FullName.equalsIgnoreCase(ColumnName)) {
		return (i + 1);
	    }
	}
	throw new java.sql.SQLException ("Column '" + ColumnName + "' not found.", "S0022");
    } 

    // ****************************************************************
    //
    //                       END OF PUBLIC INTERFACE
    //
    // ****************************************************************

    /**
     * Create a new ResultSet - Note that we create ResultSets to
     * represent the results of everything.
     *
     * @param fields an array of Field objects (basically, the
     *    ResultSet MetaData)
     * @param tuples Vector of the actual data
     * @param status the status string returned from the back end
     * @param updateCount the number of rows affected by the operation
     * @param cursor the positioned update/delete cursor name
     */

    ResultSet(Field[] Fields, Vector Tuples, org.gjt.mm.mysql.Connection Conn)
    {
	this(Fields, Tuples);
	setConnection(Conn);
    }
	
    ResultSet(Field[] Fields, Vector Tuples)
    { 
	currentRow = -1;
	this.Fields = Fields;
	Rows = Tuples;
	updateCount = (long)Rows.size();
	if (Driver.debug)
	    System.out.println("Retrieved " + updateCount + " rows");
	reallyResult = true;

	// Check for no results
	if (!(Rows.size() == 0)) {
		  
	    This_Row = (byte[][])Rows.elementAt(0);
    
		  
	    if (updateCount == 1) {
		boolean nulls = true;
		if (This_Row == null) {
		      
		    nulls = true;
		}
		else {
		    for (int i = 0; i < This_Row.length; i++) {
			if (This_Row[i] != null)  {
		          
			    nulls = false;
			    break;
			}
		    }
		}
		if (nulls) {
		    currentRow = Tuples.size() + 1;
		}
	    } 
	}
	else {
	    This_Row = null;
	}
   
    }

    /**
     * Create a result set for an executeUpdate statement.
     *
     * @param updateCount the number of rows affected by the update
     */

    ResultSet(long updateCount, long updateID)
    {
	this.updateCount = updateCount;
	this.updateID = updateID;
	reallyResult = false;
	Fields = new Field[0];
    }

    void setConnection(org.gjt.mm.mysql.Connection Conn)
    {
	this.Conn = Conn;
    }

    boolean reallyResult()
    {
	return reallyResult;
    }

    long getUpdateCount()
    {
	return updateCount;
    }
  
    long getUpdateID()
    {
	return updateID;
    }
}

⌨️ 快捷键说明

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