/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package java.sql; /** * Provides information about the columns returned in a {@code ResultSet}. */ public interface ResultSetMetaData extends Wrapper { /** * Indicates that a column cannot contain {@code NULL} values. */ public static final int columnNoNulls = 0; /** * Indicates that a column can contain {@code NULL} values. */ public static final int columnNullable = 1; /** * Indicates that it is unknown whether a column can contain {@code NULL}s or not. */ public static final int columnNullableUnknown = 2; /** * Returns the title of an indexed column's catalog. * * @param column * the column index, starting at 1. * @return the catalog title. * @throws SQLException * if there is a database error. */ public String getCatalogName(int column) throws SQLException; /** * Returns the fully-qualified type of the class that is produced when * invoking {@code ResultSet.getObject} to recover this column's value. * * @param column * the column index, starting at 1. * @return the fully-qualified class name. * @throws SQLException * if there is a database error. * @see ResultSet#getObject */ public String getColumnClassName(int column) throws SQLException; /** * Returns number of columns contained in the associated result set. * * @return the column count. * @throws SQLException * if there is a database error. */ public int getColumnCount() throws SQLException; /** * Returns the indexed column's standard maximum width, expressed in number * of characters. * * @param column * the column index, starting at 1. * @return the column's max width. * @throws SQLException * if there is a database error. */ public int getColumnDisplaySize(int column) throws SQLException; /** * Returns a recommended title for the indexed column, to be used when the * title needs to be displayed. * * @param column * the column index, starting at 1. * @return the column's title. * @throws SQLException * if there is a database error. */ public String getColumnLabel(int column) throws SQLException; /** * Returns the title of the indexed column. * * @param column * the column index, starting at 1. * @return the column title. * @throws SQLException * if there is a database error. */ public String getColumnName(int column) throws SQLException; /** * Returns the type of the indexed column as SQL type code. * * @param column * the column index, starting at 1. * @return the column type code. * @throws SQLException * if there is a database error. * @see Types */ public int getColumnType(int column) throws SQLException; /** * Returns the type name of the indexed column. * * @param column * the column index, starting at 1. * @return the type name. * @throws SQLException * if there is a database error. */ public String getColumnTypeName(int column) throws SQLException; /** * Returns the decimal precision of the indexed column. * * @param column * the column index, starting at 1. * @return the precision. * @throws SQLException * if there is a database error. */ public int getPrecision(int column) throws SQLException; /** * Returns the number of digits to the right of the decimal point of the * indexed column. * * @param column * the column index, starting at 1. * @return number of decimal places. * @throws SQLException * if there is a database error. */ public int getScale(int column) throws SQLException; /** * Returns the name of the indexed columns schema. * * @param column * the column index, starting at 1. * @return the name of the columns schema. * @throws SQLException * if there is a database error. */ public String getSchemaName(int column) throws SQLException; /** * Returns the title of the indexed columns table. * * @param column * the column index, starting at 1. * @return the table title. * @throws SQLException * if there is a database error. */ public String getTableName(int column) throws SQLException; /** * Returns an indication of whether the indexed column is automatically * incremented and is therefore read-only. * * @param column * the column index, starting at 1. * @return {@code true} if it is automatically numbered, {@code false} * otherwise. * @throws SQLException * if there is a database error. */ public boolean isAutoIncrement(int column) throws SQLException; /** * Returns an indication of whether the case of the indexed column is * important. * * @param column * the column index, starting at 1. * @return {@code true} if case matters, {@code false} otherwise. * @throws SQLException * if there is a database error. */ public boolean isCaseSensitive(int column) throws SQLException; /** * Returns whether the indexed column contains a monetary amount. * * @param column * the column index, starting at 1. * @return {@code true} if it is a monetary value, {@code false} otherwise. * @throws SQLException * if there is a database error. */ public boolean isCurrency(int column) throws SQLException; /** * Returns an indication of whether writing to the indexed column is * guaranteed to be successful. * * @param column * the column index, starting at 1. * @return {@code true} if the write is guaranteed, {@code false} otherwise. * @throws SQLException * if there is a database error. */ public boolean isDefinitelyWritable(int column) throws SQLException; /** * Returns whether the indexed column is nullable. * * @param column * the column index, starting at 1. * @return {@code true} if it is nullable, {@code false} otherwise. * @throws SQLException * if there is a database error. */ public int isNullable(int column) throws SQLException; /** * Returns an indication of whether writing to the indexed column is * guaranteed to be unsuccessful. * * @param column * the column index, starting at 1. * @return {@code true} if the column is read-only, {@code false} otherwise. * @throws SQLException * if there is a database error. */ public boolean isReadOnly(int column) throws SQLException; /** * Returns an indication of whether the indexed column is searchable. * * @param column * the column index, starting at 1. * @return {@code true} if the indexed column is searchable, {@code false} * otherwise. * @throws SQLException * if there is a database error. */ public boolean isSearchable(int column) throws SQLException; /** * Returns an indication of whether the values contained in the indexed * column are signed. * * @param column * the column index, starting at 1. * @return {@code true} if they are signed, {@code false} otherwise. * @throws SQLException * if there is a database error. */ public boolean isSigned(int column) throws SQLException; /** * Returns an indication of whether writing to the indexed column is * possible. * * @param column * the column index, starting at 1. * @return {@code true} if it is possible to write, {@code false} otherwise. * @throws SQLException * if there is a database error. */ public boolean isWritable(int column) throws SQLException; }