1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
/* * @(#)ParameterMetaData.java 1.17 06/04/16 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.sql; /** * An object that can be used to get information about the types * and properties for each parameter marker in a * <code>PreparedStatement</code> object. For some queries and driver * implementations, the data that would be returned by a <code>ParameterMetaData</code> * object may not be available until the <code>PreparedStatement</code> has * been executed. *<p> *Some driver implementations may not be able to provide information about the *types and properties for each parameter marker in a <code>CallableStatement</code> *object. * * @since 1.4 */ public interface ParameterMetaData extends Wrapper { /** * Retrieves the number of parameters in the <code>PreparedStatement</code> * object for which this <code>ParameterMetaData</code> object contains * information. * * @return the number of parameters * @exception SQLException if a database access error occurs * @since 1.4 */ int getParameterCount() throws SQLException; /** * Retrieves whether null values are allowed in the designated parameter. * * @param param the first parameter is 1, the second is 2, ... * @return the nullability status of the given parameter; one of * <code>ParameterMetaData.parameterNoNulls</code>, * <code>ParameterMetaData.parameterNullable</code>, or * <code>ParameterMetaData.parameterNullableUnknown</code> * @exception SQLException if a database access error occurs * @since 1.4 */ int isNullable(int param) throws SQLException; /** * The constant indicating that a * parameter will not allow <code>NULL</code> values. */ int parameterNoNulls = 0; /** * The constant indicating that a * parameter will allow <code>NULL</code> values. */ int parameterNullable = 1; /** * The constant indicating that the * nullability of a parameter is unknown. */ int parameterNullableUnknown = 2; /** * Retrieves whether values for the designated parameter can be signed numbers. * * @param param the first parameter is 1, the second is 2, ... * @return <code>true</code> if so; <code>false</code> otherwise * @exception SQLException if a database access error occurs * @since 1.4 */ boolean isSigned(int param) throws SQLException; /** * Retrieves the designated parameter's specified column size. * * <P>The returned value represents the maximum column size for the given parameter. * For numeric data, this is the maximum precision. For character data, this is the length in characters. * For datetime datatypes, this is the length in characters of the String representation (assuming the * maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype, * this is the length in bytes. 0 is returned for data types where the * column size is not applicable. * * @param param the first parameter is 1, the second is 2, ... * @return precision * @exception SQLException if a database access error occurs * @since 1.4 */ int getPrecision(int param) throws SQLException; /** * Retrieves the designated parameter's number of digits to right of the decimal point. * 0 is returned for data types where the scale is not applicable. * * @param param the first parameter is 1, the second is 2, ... * @return scale * @exception SQLException if a database access error occurs * @since 1.4 */ int getScale(int param) throws SQLException; /** * Retrieves the designated parameter's SQL type. * * @param param the first parameter is 1, the second is 2, ... * @return SQL type from <code>java.sql.Types</code> * @exception SQLException if a database access error occurs * @since 1.4 * @see Types */ int getParameterType(int param) throws SQLException; /** * Retrieves the designated parameter's database-specific type name. * * @param param the first parameter is 1, the second is 2, ... * @return type the name used by the database. If the parameter type is * a user-defined type, then a fully-qualified type name is returned. * @exception SQLException if a database access error occurs * @since 1.4 */ String getParameterTypeName(int param) throws SQLException; /** * Retrieves the fully-qualified name of the Java class whose instances * should be passed to the method <code>PreparedStatement.setObject</code>. * * @param param the first parameter is 1, the second is 2, ... * @return the fully-qualified name of the class in the Java programming * language that would be used by the method * <code>PreparedStatement.setObject</code> to set the value * in the specified parameter. This is the class name used * for custom mapping. * @exception SQLException if a database access error occurs * @since 1.4 */ String getParameterClassName(int param) throws SQLException; /** * The constant indicating that the mode of the parameter is unknown. */ int parameterModeUnknown = 0; /** * The constant indicating that the parameter's mode is IN. */ int parameterModeIn = 1; /** * The constant indicating that the parameter's mode is INOUT. */ int parameterModeInOut = 2; /** * The constant indicating that the parameter's mode is OUT. */ int parameterModeOut = 4; /** * Retrieves the designated parameter's mode. * * @param param the first parameter is 1, the second is 2, ... * @return mode of the parameter; one of * <code>ParameterMetaData.parameterModeIn</code>, * <code>ParameterMetaData.parameterModeOut</code>, or * <code>ParameterMetaData.parameterModeInOut</code> * <code>ParameterMetaData.parameterModeUnknown</code>. * @exception SQLException if a database access error occurs * @since 1.4 */ int getParameterMode(int param) throws SQLException; }