数据库系统工程师考试估题(抛转引玉)
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 {
(————————————)
}
}
}