定义如下:
public interface ResultSetMetaData extends Wrapper
可用于获取关于 ResultSet
对象中列的类型和属性信息的对象。以下代码片段创建 ResultSet
对象 rs,创建 ResultSetMetaData
对象 rsmd,并使用 rsmd 查找 rs 有多少列,以及 rs 中的第一列是否可以在 WHERE
子句中使用。
例如:package ResultSetMetaData;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class test {
public static void main(String[] args) {
Connection conn=null;
Statement stmt=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:oracle12c", "c##scott",
"tiger");
stmt = conn.createStatement();
//创建 ResultSet 对象 rs
ResultSet rs = stmt.executeQuery("select * from test");
//创建 ResultSetMetaData 对象 rsmd
ResultSetMetaData rsmd = rs.getMetaData();
//使用 rsmd 查找 rs 有多少列
int numberOfColumns = rsmd.getColumnCount();
// rs 中的第一列是否可以在 WHERE 子句中使用
boolean b = rsmd.isSearchable(1);
System.out.println("数据中总共有"+numberOfColumns+"列");
System.out.println("rs 中的第一列是否可以在 WHERE 子句中使用"+b);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
我们还可以获取更多的信息: String getCatalogName(int column) 获取指定列的表目录名称。
String getColumnClassName(int column)
如果调用方法 ResultSet.getObject 从列中获取值,则返回构造其实例的 Java 类的完全限定名称。
int getColumnCount()
返回此 ResultSet 对象中的列数。
int getColumnDisplaySize(int column)
指示指定列的最大标准宽度,以字符为单位。
String getColumnLabel(int column)
获取用于打印输出和显示的指定列的建议标题。
String getColumnName(int column)
获取指定列的名称。
int getColumnType(int column)
获取指定列的 SQL 类型。
String getColumnTypeName(int column)
获取指定列的数据库特定的类型名称。
int getPrecision(int column)
获取指定列的指定列宽。
int getScale(int column)
获取指定列的小数点右边的位数。
String getSchemaName(int column)
获取指定列的表模式。
String getTableName(int column)
获取指定列的名称。
boolean isAutoIncrement(int column)
指示是否自动为指定列进行编号。
boolean isCaseSensitive(int column)
指示列的大小写是否有关系。
boolean isCurrency(int column)
指示指定的列是否是一个哈希代码值。
boolean isDefinitelyWritable(int column)
指示在指定的列上进行写操作是否明确可以获得成功。
int isNullable(int column)
指示指定列中的值是否可以为 null。
boolean isReadOnly(int column)
指示指定的列是否明确不可写入。
boolean isSearchable(int column)
指示是否可以在 where 子句中使用指定的列。
boolean isSigned(int column)
指示指定列中的值是否带正负号。
boolean isWritable(int column)
指示在指定的列上进行写操作是否可以获得成功。