在执行 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]
相关文章
- 数据加载与保存-通用方式 使用df.write.save方法保存数据,同样可通过format指定数据类型。 save方法后需传入保存路径(针对csv、orc、parquet、textFile格式)。 option方法用于设置特定格式的参数。 保存操作可使用SaveMode来指明如何处理数据,如覆盖(overwrite)、追加(append)等,通过mode方法设置。 特定格式保存 与加载类似,Parquet、JSON、CSV等格式均可通过指定format进行保存。 MySQL等关系型数据库的写入也通过JDBC实现,需指定format为jdbc,并传入数据库连接信息及表名。 注意事项
- 【mysql元数据库】使用information_schema.tables查询数据库和数据表信息
- (转)【mysql元数据库】使用information_schema.tables查询数据库和数据表信息 ---数据记录大小统计
- 如何使用Navicat查看创建已有表的全部字段信息
- 5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算
- Android(java)学习笔记249:ContentProvider使用之获得系统联系人信息01
- 使用sql语句获取数据库表的信息
- c#使用 HtmlAgilityPack来进行抓取和解析来获得table表格信息
- 如何使用Dbpedia ruby gem获得类型信息
- C代码使用GetDiskFreeSpaceEx获得磁盘分区大小信息,返回值是以字节数表示,我想用字节数/512,表示成扇区数,为什么不成功?谢谢!