在执行 SQL 查询时,通过调用 ResultSet 对象中的 getMetaData() 方法可以获得 ResultSetMetaData对象。返回的 ResultSetMetaData 对象可以转换类型以获取 OracleResultSetMetaData对象。以下代码显示如何使用 OracleResultSetMetaData。
import java.sql.*;
import oracle.jdbc.OracleResultSetMetaData;
public class OracleResultSetMetaDataSample {
static final String dbURI = "jdbc:oracle:thin:@<hostname>:<port>:<SID>";
public static void main(String[] args) throws Exception{
// Connection reference
Connection conn = null;
try {
// Load database driver
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
// Make connection
conn = DriverManager.getConnection(dbURI,"scott","tiger");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * from emp");
// Get the ResultSet meta data
OracleResultSetMetaData rmd = (OracleResultSetMetaData)rs.getMetaData();
if (rmd == null) {
System.out.println("ResultSet meta data not available");
} else {
int columnCount = rmd.getColumnCount();
// Display number of Columns in the ResultSet
System.out.println("Number of Columns in the table :" + columnCount);
for(int i=1; i<=columnCount; i++) {
// Display number of Column name
System.out.print("Column Name :"+ rmd.getColumnName(i));
// Display number of Column Type
System.out.print(" Column Type :"+ rmd.getColumnTypeName(i));
// Display if Column can be NOT NULL
switch (rmd.isNullable(i)) {
case OracleResultSetMetaData.columnNoNulls :
System.out.println(" NOT NULL");
break;
case OracleResultSetMetaData.columnNullable :
System.out.println(" NULLABLE");
break;
case OracleResultSetMetaData.columnNullableUnknown :
System.out.println(" NULLABLE Unkown");
}
}
}
} finally {
// Close connection
if (conn != null) {
try {
conn.close();
} catch (SQLException ex) {
System.out.println("Error in closing Conection");
}
}
}
}
}
在获得 OracleResultSetMetaData 对象后,可以使用其中的方法以获取关于 ResultSet 中列的详细信息。OracleResultSetMetaData 中的 所有方法返回 boolean、int 或 String。
getColumnCount() 方法将 ResultSet 中列的数量以 int 返回。
getColumnName() 方法将列名以 String 返回。
getColumnTypeName() 方法将列类型以 String 返回。
isNullable() 方法在列允许为 NULL 时返回。此方法返回一个 int,它可以是下列常数中的任一项:
columnNoNulls ― 表示列值不允许为 NULL
columnNullable ― 表示列值允许为 NULL
columnNullableUnknown ― 表示列值是否允许为空是未知状态
注意:
OracleResultSetMetaData 接口不实现 getSchemaName() 和 getTableName() 方法,因为底层协议不允许进行此操作。
转载至程式先锋技术维客[url]www.javabiz.cn[/url]
相关文章
- c#使用 HtmlAgilityPack来进行抓取和解析来获得table表格信息
- 如何使用Dbpedia ruby gem获得类型信息
- C代码使用GetDiskFreeSpaceEx获得磁盘分区大小信息,返回值是以字节数表示,我想用字节数/512,表示成扇区数,为什么不成功?谢谢!
- 获得拥有互联网访问权限的应用程序的流量使用信息
- 如何使用mysql表中的信息创建BAR图表?
- 在CSS中,如何获得左侧固定宽度列以及使用其余宽度的右侧表?
- 【MySQL数据库开发之三】MySQL 获得数据库和表的信息、日期计算、对表的删除修改等操作!
- 使用JDBC获取各数据库的Meta信息——表以及对应的列
- 求高手~~java中textarea的使用。如何通过循环获得信息后换行打印出新的数据。
- Mysql 查看使用命令行查看数据库和表,字段等信息