JDBC练习题 下载本文

内容发布更新时间 : 2024/12/24 0:36:53星期一 下面是文章的全部内容请认真阅读。

一、选择题

1. 有关JDBC的选项正确的是哪一个?

A. JDBC是一种被设计成通用的数据库连接技术,JDBC技术不光可以应用在Java程

序里面,还可以用在C++这样的程序里面。

B. JDBC技术是SUN公司设计出来专门用在连接Oracle数据库的技术,连接其他的

数据库只能采用微软的ODBC解决方案

C. 微软的ODBC和SUN公司的JDBC解决方案都能实现跨平台使用,只是JDBC的性能

要高于ODBC

D. JDBC只是个抽象的调用规范,底层程序实际上要依赖于每种数据库的驱动文件 2. 选择JDBC可以执行的语句(多选) A. DDL B. DCL C. DML D. 以上都可以

3. 选择Java程序开发中推荐使用的常用数据库(多选) a. Oracle

b. SQL Server 2000 c. MySQL d. DB2

4. 哪个不是JDBC用到的接口和类? a. System b. Class c. Connection d. ResultSet

5. 使用Connection 的哪个方法可以建立一个PreparedStatement接口?

A. createPrepareStatement() B. prepareStatement()

C. createPreparedStatement()

D. preparedStatement() 6. 下面的描述正确的是什么?

A. PreparedStatement继承自Statement B. Statement继承自PreparedStatement C. ResultSet继承自Statement

D. CallableStatement继承自PreparedStatement 7. 下面的描述错误的是什么?

A. Statement的executeQuery()方法会返回一个结果集

B. Statement的executeUpdate()方法会返回是否更新成功的boolean值 C. 使用ResultSet中的getString()可以获得一个对应于数据库中char类型的

D. ResultSet中的next()方法会使结果集中的下一行成为当前行 8. 如果数据库中某个字段为numberic型,可以通过结果集中的哪个方法获取?

A. getNumberic() B. getDouble() C. getBigDecimal () D. getFloat()

9. 在Jdbc中使用事务,想要回滚事务事务的方法是什么?

A. Connection的commit() B. Connection的setAutoCommit() C. Connection的rollback() D. Connection的close()

10. 在JDBC编程中执行完下列SQL语句SELECT name, rank, serialNo

FROM employee,能得到rs的第一列数据的代码是哪两个? A. rs.getString(0); B. rs.getString(\C. rs.getString(1);

D. rs.getString(\

11. 下面关于PreparedStatement的说法错误的是什么

A. PreparedStatement继承了Statement B. PreparedStatement可以有效的防止SQL注入 C. PreparedStatement不能用于批量更新的操作

D. PreparedStatement可以存储预编译的Statement,从而提升执行效率 12. 下面的选项加载MySQL驱动正确的是哪一个?

A. Class.forname(\B. Class.forname(\C. Class.forname(\D. Class.forname(\13. 下面的选项加载MySQL驱动正确的是哪一个?

A. Class.forname(\B. Class.forname(\C. Class.forname(\D. Class.forname(\14. 下面代码加载Oracle驱动正确的是哪一个?

A. DriverManager.register(\B. DriverManager.forname(\C. DriverManager.load(\

D. DriverManager.newInstance(\15. 有关Connection描述错误的是哪一个?

A. Connection是Java程序与数据库建立的连接对象,这个对象只能用来连接

数据库,不能执行SQL语句。

B. JDBC的数据库事物控制要靠Connection对象完成。

C. Connection对象使用完毕后要及时关闭,否则会对数据库造成负担。 D. 只用MySQL和Oracle数据库的JDBC程序需要创建Connection对象,其他

数据库的JDBC程序不用创建Connection对象就可以执行CRUD操作。

16. 下面有关JDBC事物的描述正确的是哪一个?

A. JDBC事物默认为自动提交,没执行一条SQL语句就会开启一个事物,执行完毕

之后自动提交事物,如果出现异常自动回滚事物。

B. JDBC的事物不同于数据库的事物,JDBC的事物依赖于JDBC驱动文件,拥有

独立于数据库的日志文件,因此JDBC的事物可以替代数据库事物。 C. 如果需要开启手动提交事物需要调用Connection对象的start()方法。 D. 如果事物没有提交就关闭了Connection连接,那么JDBC会自动提交事物。 17. 下列的预编译SQL哪一个是正确的?

A. SELECT * FROM ?; B. SELECT ?,?,? FROM emp ;

C. SELECT * FROM emp WHERE salary>(?) D. 以上都不对

18. 能执行预编译SQL的是哪一个选项?

A. Statement

B. PreparedStatement C. PrepareStatement D. 以上都不是

19. 如果为下列预编译SQL的第三个问号赋值,那么正确的选项是哪一个?

UPDATE emp SET ename=?,job=?,salary=? WHERE empno=?; A. pst.setInt(\B. pst.setInt(3,2000);

C. pst.setFloat(\D. pst.setString(\20. 有关PreparedStatement说法正确的是哪一个?

A. 该对象只能执行带问号占位符的预编译SQL,不能执行SQL语句。 B. 该对象执行的时候,只能执行查询语句,其他预编译SQL语句只能由

Statement执行。

C. 该对象因为只能执行查询语句,所以该对象不能用在JDBC事物中。 D. 该对象与一条SQL预编译语句绑定,不能执行其他预编译SQL语句。 21. 有关预编译SQL的有点说法错误的是哪一个?

A. 预编译SQL可以被PreparedStatement反复执行

B. 预编译SQL语句在PreparedStatement对象创建之后就被传递给数据库解

析,之后PreparedStatement执行预编译的时候,其实传递给数据库的只有占位符的参数。如果需要批量插入1000条记录的时候,预编译SQL只被数据库解析一次,其余都是数据库接受参数数据然后执行,这样的速度大为提高。 C. 预编译SQL的安全性好,可以抵御数据库脚本注入攻击,而这却是Statement

所不具备的。

D. 预编译SQL的占位符既可以替代数据表,也可以替代表达式的数据,甚至是子

查询语句。

22. 下列选项有关ResultSet说法错误的是哪一个?

A. ResultSet是查询结果集对象,如果JDBC执行查询语句没有查询到数据,那

么ResultSet将会是null值。

B. 判断ResultSet是否存在查询结果集,可以调用它的next()方法。 C. 如果Connection对象关闭,那么ResultSet也无法使用。

D. 如果一个事物没有提交,那么ResultSet中是看不到事物过程中的临时数据。 23. SELECT COUNT(*) FROM emp;这条SQL语句执行,如果员工表中没有任何数据,

那么ResultSet中将会是什么样子? A. null B. 有数据

C. 不为null,但是没有数据 D. 以上都选项都不对

24. 下面选项的MySQL数据库URL正确的是哪一个?

A. jdbc:mysql://localhost/company B. jdbc:mysql://localhost:3306:company C. jdbc:mysql://localhost:3306/company D. jdbc:mysql://localhost/3306/company