一、通過DatabaseMetaData對象了解數(shù)據(jù)庫的信息
JSP通過JDBC對數(shù)據(jù)庫管理系統(tǒng)進行連接以后,得到一個Connection 對象,可以從這個對象獲得有關(guān)數(shù)據(jù)庫管理系統(tǒng)的各種信息,包括數(shù)據(jù)庫中的各個表,表中的各個列,數(shù)據(jù)類型,觸發(fā)器,存儲過程等各方面的信息。根據(jù)這些信息,JDBC可以訪問一個實現(xiàn)事先并不了解的數(shù)據(jù)庫。獲取這些信息的方法都是在DatabaseMetaData類的對象上實現(xiàn)的,而DataBaseMetaData對象是在Connection對象上獲得的。
按照慣例,讓我們先來看看下面這個例子:
package com.rongji.demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.DatabaseMetaData;
public class DataConn {
public DataConn() {
}
public static void main(String[] args) {
try
{
//加載驅(qū)動程序
//下面的代碼為加載JDBD-ODBC驅(qū)動程序
Class.forName("oracle.jdbc.driver.OracleDriver");
//建立連接
//用適當?shù)尿?qū)動程序連接到DBMS,看下面的代碼[自行修改您所連接的數(shù)據(jù)庫相關(guān)信息]:
String url="jdbc:oracle:thin:@192.168.4.45:1521:oemrep";
String user = "ums";
String password = "rongji";
//用url創(chuàng)建連接
Connection con=DriverManager.getConnection(url,user,password);
//獲取數(shù)據(jù)庫的信息
DatabaseMetaData dbMetaData = con.getMetaData();
//返回一個String類對象,代表數(shù)據(jù)庫的URL
System.out.println("URL:"+dbMetaData.getURL()+";");
//返回連接當前數(shù)據(jù)庫管理系統(tǒng)的用戶名。
System.out.println("UserName:"+dbMetaData.getUserName()+";");
//返回一個boolean值,指示數(shù)據(jù)庫是否只允許讀操作。
System.out.println("isReadOnly:"+dbMetaData.isReadOnly()+";");
//返回數(shù)據(jù)庫的產(chǎn)品名稱。
System.out.println("DatabaseProductName:"+dbMetaData.getDatabaseProductName()+";");
//返回數(shù)據(jù)庫的版本號。
System.out.println("DatabaseProductVersion:"+dbMetaData.getDatabaseProductVersion()+";");
//返回驅(qū)動驅(qū)動程序的名稱。
System.out.println("DriverName:"+dbMetaData.getDriverName()+";");
//返回驅(qū)動程序的版本號。
System.out.println("DriverVersion:"+dbMetaData.getDriverVersion());
//關(guān)閉連接
con.close();
}
catch (Exception e)
{
//輸出異常信息
System.err.println("SQLException :"+e.getMessage());
e.printStackTrace();
}
}
}
通過上面的例子,我們可以看出,DatabaseMetaData類的對象的實現(xiàn),如下語句
<%
DatabaseMetaData datameta=con.getMetaData();
%>
DatabaseMetaData類中提供了許多方法用于獲得數(shù)據(jù)源的各種信息,通過這些方法可以非常詳細的了解數(shù)據(jù)庫的信息。就如我們上面例子中所顯示的幾個信息[其他的方法請讀者參考JDK API中的DatabaseMetaData類]:
getURL()
返回一個String類對象,代表數(shù)據(jù)庫的URL。
getUserName()
返回連接當前數(shù)據(jù)庫管理系統(tǒng)的用戶名。
isReadOnly()
返回一個boolean值,指示數(shù)據(jù)庫是否只允許讀操作。
getDatabaseProductName()
返回數(shù)據(jù)庫的產(chǎn)品名稱。
getDatabaseProductVersion()
返回數(shù)據(jù)庫的版本號。
getDriverName()
返回驅(qū)動驅(qū)動程序的名稱。
getDriverVersion()
返回驅(qū)動程序的版本號。
posted on 2005-10-27 12:51
rkind 閱讀(81)
評論(0) 編輯 收藏