第六章 数据库访问
一、选择题 1.下面哪一项不是JDBC的工作任务?()
A)与数据库建立连接 B)操作数据库,处理数据库返回的结果 C)在网页中生成表格 D)向数据库管理系统发送SQL语句 5.如果将E:\\MyWeb作为JSP网站目录,需要修改哪个文档?()
A)server.xml B)server.htm C)index.xml D)index.htm 6.DriverManager类的getConnection(String url,String user,String password)方法中,参数url的格式为jdbc:<子协议>:<子名称>,下列哪个url是不正确的?() A)”jdbc:mysql://localhost:80/数据库名” B)”jdbc:odbc:数据源”
C)”jdbc:oracle:thin@host:端口号:数据库名”
D)”jdbc:sqlserver://172.0.0.1:1443;DatabaseName=数据库名” 7.在JDBC中,下列哪个接口不能被Connection创建()。
A)Statement B)PreparedStatement C)CallableStatement D)RowsetStatement 8.下面是加载JDBC数据库驱动的代码片段:
try{
Class.forName(\ }
catch(ClassNotFoundException e){ out.print(e); }
该程序加载的是哪个驱动?()
A)JDBC-ODBC桥连接驱动 B)部分Java编写本地驱动 C)本地协议纯Java驱动 D)网络纯Java驱动
9.下面是创建Statement接口并执行executeUpdate方法的代码片段: conn=DriverManager.getConnection(\ stmt=conn.createStatement();
String strsql=\李','清华出版社',35)\ n=stmt.executeUpdate(strsql);
代码执行成功后n的值为 ()。
A)1 B)0 C)-1 D)一个整数
10.下列代码中rs为查询得到的结果集,代码运行后表格的每一行有几个单元格()
while(rs.next()){ out.print(\
out.print(\ out.print(\
out.print(\
out.print(\ out.print(\ out.print(\ }
A)4 B)5 C)6 D)不确定
13.下面的代码是连接哪个数据库的驱动加载片段( ) try{
Class.forName(\ }
catch(Exception e){
out.print(e.toString()); }
A)Oracle B)Sql Server C)MySql D)不确定
14.下面的代码是连接哪个数据库的驱动加载片段( ) try{
Class.forName(\ }
catch(Exception e){
out.print(e.toString()); }
A)Oracle B)Sql Server C)MySql D)不确定 15.查询结果集ResultSet对象是以统一的行列形式组织数据的,执行ResultSet rs = stmt.executeQuery (\语句,得到的结果集rs的列数为( ) A)4 B)5
C)6 D)不确定 16.下列代码生成了一个结果集
conn=DriverManager.getConnection(uri,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(\下面哪项对该rs描述正确的是()
A)只能向下移动的结果集 B)可上下滚动的结果集 C)只能向上移动的结果集 D)不确定是否可以滚动 17.下列代码生成了一个结果集
conn=DriverManager.getConnection(uri,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(\下面哪项对该rs描述正确( )
A)不能用结果集中的数据更新数据库中的表
B)能用结果集中的数据更新数据库中的表 C)执行update方法能更新数据库中的表 D)不确定
18.下列代码生成了一个结果集
conn=DriverManager.getConnection(uri,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(\下面哪项对该rs描述正确( )
A)数据库中表数据变化时结果集中数据不变 B)数据库中表数据变化时结果集中数据同步更新 C)执行update方法能与数据库中表的数据同步更新 D)不确定
22.给出了如下的查询条件字符串String condition=\下列哪个接口适合执行该SQL查询() A)Statement
B)PrepareStatement C)CallableStatement D)不确定
二、判断题
1.JDBC构建在ODBC基础上,为数据库应用开发人员、数据库前台工具开发人员提供了一种标准,使开发人员可以用任何语言编写完整的数据库应用程序。()
2.数据库服务与Web服务器需要在同一台计算机上。()
3.JDBC加载不同数据库的驱动程序,使用相应的参数可以建立与各种数据库的连接。()
4.Connection.createStatement()不带参数创建Statement对象,不能够来回的滚动读取结果集。()
5.使用数据库连接池需要烦琐的配置,一般不宜使用。()
6.应用程序分页显示记录集时,不宜在每页都重新连接和打开数据库。() 7.JDBC中的URL提供了一种标识数据库的方法,使DriverManage类能够识别相应的驱动程序。()
8.用户发布Web应用程序,必须修改%TOMCAT_HOME%\\conf\\server.xml文件。()
10.JDBC的URL字符串是由驱动程序的编写者提供的,并非由该驱动程序的使用者指定。() 12.如果需要在结果集中前后移动或随机显示某一条记录,这时就必须得到一个可以滚动的结果集。()
13.Statement对象提供了int executeUpdate(String sqlStatement)方法,用于实现对数据库中数据的添加、删除和更新操作。()
四、思考题
1.什么是JDBC编程接口?
2.试列举一个你在编程和调试中碰到的数据库问题及其解决办法。 3.如何实现记录集的行操作? 4.进行记录定位的方法有哪些?
5.什么是数据库连接池?如何使用?
6.使用纯Java驱动操作mysql数据库的步骤?
7.加载Sql Server 2000纯Java驱动程序的代码是什么? 8.使用预处理语句和存储过程有什么好处? 9.使用CachedRowSetImpl类有什么好处? 10.如何使用滚动的结果集?