使用ResultSetMetaData顯示欄位的名字等資訊
來源:互聯網
上載者:User
package com.test;
import java.sql.*;
/** *//****************************************
* 此例說明的問題:JDBC開發流程 --使用ResultSetMetaData顯示欄位的名字等資訊
* 註:該例中使用的驅動為Jdbc-Odbc橋驅動
****************************************/
class Hello
...{
public static void main(String args[])
...{
try
...{
/** *//**
* 第一步:載入JDBC驅動;
*/
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/** *//**
* 第二步:建立串連;
* 註:此步需要為SqlServer資料庫Book建立資料來源名稱bookdsn
*/
String url="jdbc:odbc:bookdsn";
Connection con=DriverManager.getConnection(url,"sa","");
/** *//**
* 第三步:建立Statement,執行查詢並得到結果集;
*/
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("SELECT ID,book_name,book_price,book_quantity from book_stock");
/** *//**
* 第四步:處理結果集;
* 註:(1)在迴圈讀取欄位內容時,必須按欄位記錄集的順序讀取;
* 順序即select語句中的順序,否則產生索引異常;
* (2)一個欄位在當前行只能讀取一次;
*/
System.out.println("編號 圖書名稱 圖書單價 圖書數量 ");
while(rs.next())
...{
int id=rs.getInt("ID");
String book_name=rs.getString("book_name");
double book_price=rs.getDouble("book_price");
int book_quantity=rs.getInt("book_quantity");
System.out.println(id+" "+book_name+" "+book_price+" "+book_quantity);
}
/** *//**
* 使用ResultSetMetaData顯示欄位的名字等資訊
*/
ResultSetMetaData rsMeta=rs.getMetaData();
System.out.print(" 欄位的數量:");
int colCount=rsMeta.getColumnCount();
System.out.println(colCount);
System.out.println("下面輸出欄位名稱及類型");
for(int i=1;i<=colCount;i++)
...{
System.out.println(rsMeta.getColumnName(i)+" 類型:"+rsMeta.getColumnTypeName(i));
}
/** *//**
* 第五步:關閉串連、結果集;
* 注:先關結果集再關串連;
*/
rs.close();
stmt.close();
con.close();
}
catch(Exception e)
...{
System.out.println("發生異常:"+e);
}
}
}