接口 ResultSetMetaData

定义如下:
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)            指示在指定的列上进行写操作是否可以获得成功。 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。