數據庫系統工程師考試估題(拋轉引玉)
2024-07-21 02:07:30
供稿:網友
下午試題目的是考能力,考“普遍性”的東西,而盡量避免“特殊性”。也就是說,考題不應該受考生個人特殊知識背景影響太大。象高程試題就是這樣。即使是程序設計,還有c/c++的選擇,也就是照顧到了不同,考生的知識背景,這樣才是公平的。
我的個人看法是,下午試題中,出現數據流圖、e-r圖、案例分析與設計、數據庫設計、sql、uml這樣的可能性比較大,另外這些概念也可能會考。
jdbc基礎教程之概述
1.1 什么是 jdbctm?
jdbctm 是一種用于執行 sql 語句的 javatm api(有意思的是,jdbc 本身是個商標名而不是一個縮寫字;然而,jdbc常被認為是代表 “java 數據庫連接 (java data
base connectivity)”)。它由一組用 java 編程語言編寫的類和接口組成。jdbc 為工具/數據庫開發人員提供了一個標準的 api,使他們能夠用純java api 來編寫數據庫應用程
序。
有了 jdbc,向各種關系數據庫發送 sql 語句就是一件很容易的事。換言之,有了jdbc api,就不必為訪問 sybase 數據庫專門寫一個程序,為訪問 oracle 數據庫又專門寫一個程序,
為訪問informix 數據庫又寫另一個程序,等等。您只需用 jdbc api 寫一個程序就夠了,它可向相應數據庫發送 sql 語句。而且,使用 java 編程語言編寫的應用程序,就無須去憂慮要為不同
的平臺編寫不同的應用程序。將 java 和 jdbc 結合起來將使程序員只須寫一遍程序就可讓它在任何平臺上運行。
java 具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的杰出語言。所需要的只是 java 應用程序與各種不同數據庫之間進行對話的方法。而 jdbc 正是作為此
種用途的機制。
jdbc 擴展了 java 的功能。例如,用 java 和 jdbc api 可以發布含有 applet的網頁,而該 applet 使用的信息可能來自遠程數據庫。企業也可以用 jdbc 通過int
ranet 將所有職員連到一個或多個內部數據庫中(即使這些職員所用的計算機有 windows、 macintosh 和 unix 等各種不同的操作系統)。隨著越來越多的程序員開始使用 java 編程語
言,對從 java中便捷地訪問數據庫的要求也在日益增加。
mis 管理員們都喜歡 java 和 jdbc 的結合,因為它使信息傳播變得容易和經濟。企業可繼續使用它們安裝好的數據庫,并能便捷地存取信息,即使這些信息是儲存在不同數據庫管理系統上。新程序的開發
期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到最新版本的應用程序。對于商務上的銷售信息服務, java 和 jdbc 可為外部客戶
提供獲取信息更新的更好方法。
odbc(open database connectibvity)是被人們廣泛接受的用于數據庫訪問的應用程序編程接口。對于數據庫api,它以x/open和iso/iec的call-level inte
rface(cli)規范為基礎,并使用結構化查詢語言(sql)作為其數據庫訪問語言。odbc是為最大的互用性而設計的,即一個應用程序用相同的源代碼訪問不同的數據庫管理系統(dbms)的能力。數據庫應用
程序在odbc接口中調用函數,odbc接口在叫做驅動程序的針對數據庫的模塊中實現。驅動程序的使用使應用程序從具體的數據庫調用中隔離開來,這與打印機驅動程序將字處理程序與具體的打印機命令隔離開的方式是一
樣的。因為驅動程序在運行時才加載,所以,用戶只需要增加一個新的驅動程序來訪問新的dbms,沒有必要重新編譯或者重新鏈接應用程序
下午考試第五題猜想
jdbc 的所有基本功能,現在我們可以編寫一個簡單的程序,該程序打開數據庫,打印它的表名以及某一表列的內容,然后對該數據庫執行查詢。此程序如下所示:
import java.sql.*;
public class jdbcodbc_test {
resultset results;
resultsetmetadata rsmd;
databasemetadata dma;
connection con;
public jdbcodbc_test() throws sqlexception {
string url = "jdbc:odbc:northwind";
try {
//加載 jdbc-odbc 橋驅動程序
(————————————————————);
con = (————————————);//連接數據庫
dma = (————————————);//獲取數據庫的元數據
system.out.println("connected to:" + dma.geturl());
system.out.println("driver " + dma.getdrivername());
} catch (exception e) {
system.out.println(e);
}
try {
statement stmt = (————————————)
results = (———————————) resultsetmetadata (————————————) int cols = (————————————)
string resultrow = "";
for (int i = 1; i < cols; i++) {
resultrow += resultmetadata.getcolumnname(i) + ";";
}
system.out.println(resultrow);
while (————————————){
resultrow = "";
for (int i = 1; i < cols; i++) {
try {
resultrow += (————————————) + ";";
} catch (nullpointerexception e) {
system.out.println(e.getmessage());
}
}
system.out.println(resultrow);
}
} catch (exception e) {
system.out.println("query exception");
} finally {
(————————————)
}
}
}