软件培训考试试题:JDBC测试题

文章出自:ht_tp://_www.goceanedu.com.cn/Read_1857.htm


一、填空:

1、SQL(Structured Query Language)是关系型数据库的标准语言;

2、加载数据库驱动可使用__________、__________、__________来注册驱动;

Class.forName(“com.mysql.jdbc.Driver”);

------不会对具体的驱动类产生依赖

DriverManager.registerDriver(oracle.jdbc.driver.OracleDriver);

------会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖

System.setProperty(“jdbc.drivers”, “driver1:driver2”);(现在已经不常用了)

3、当对对象进行批量更新时,采用__________创建对象效率较高,且在SQL语句中使用?占位符;采用__________创建则效率较低;

□preparedStatement与Statement,当执行单一SQL多次,PreparedStatement比Statement的效率高;

4、Statement接口提供了最常见的执行SQL的方法是__________、__________;

□createQuery—针对数据库Select查询

□createUpdate—针对数据库新增,删除,修改操作

5、在JDBC中,可对数据库进行遍历,以数组形式得到数据表,表字段属性,数据库版本号等信息,通过__________接口可以实现;

□ResultSetMetaData

6、事务(英文简写__________),Transaction

7、JDBC中 ,通过Statement类所提供的方法,可以利用标准的SQL对数据库进行__________、__________、__________操作;

□新增、插入、修改,因Statement对应了两个常用方法,exceuteQuery()与executeUpdata()

8、ResultSet类负责对数据库的 __________、__________、__________操作,这后对结果进行__________。其中ResultSet通过__________指向数据库中记录,来提高工作效率;

□新增,删除,修改;存储查询结果;移动记录指针

□移动记录指针包括相对定位与绝对定位

①绝对定位:跳转到指定位置

②相对定位:相比较而言的正反两方向位置,如最前最后,上与下

9、JDBC中__________类对象保存了所有__________类对象中关于字段信息,提供多个方法来取得这些信息;

□ResultSetData, ResultSet

①ResultSet:存储了对数据库新增,删除,修改的结果集

②ResultSetData:取得字段的长度,名字,类型,名称等

10、在JDBC中可使用滚动结果集向前和向后移动,可跳到任意行是用__________方法,此方法接受两个参数分别是__________和__________;

□createStatement(结果集类型,结果集并发性);

①结果集类型:决定创建的ResultStatment对象是否可滚动

②结果集并发性:决定ResultStatment对象是否可修改数据库中行

11、SQL中有4种基本操作语句:__________、__________、__________、__________;

□查询,更新,插入,删除

12、 JDBC可以对多个数据库进行连接,请写出对应数据的默认端口号:MySQL:__________; Oracle:__________; SqlServer:__________;

□jdbc:oracle:thin:@localhost:1521:orcl—(ORACLE)

□jdbc:mysql:@localhost:3306:test—(MySql)

□microsoft:sqlserver://localhost:1433;DatabaseName=XX-(SQLServer)

13、JDBC中的事务有哪些特点:__________、__________、__________、__________;

□原子性(Atomicity); 一致性(Consistency); 孤立性(Isolation); 持久性(Durability)

14、处理数据事务过程中会产生__________、__________、__________问题;

□脏读(Dirty Reads) 一个事务读取另一个并行事务还未提交的数据(一个记事本里写了数据但没保存)

□不可重复读(UnPrpeatable Read) 一个事务再次读取之前的数据时,得到的数据不一致,被另一个已提交的事务修改。

□ 幻读(Phantom Read) 一个事务重新执行一个查询,返回的记录中包含了因为其它最近提交的事务而产生的新记录。

三、简答题:

1、请定出至少三个驱动

□MySQL: com.mysql.jdbc.Driver

□Oracle: oracle.jdbc.driver.OracleDriver

□SQLServer: com.microsoft.jdbc.sqlserver.SQLServerDriver

□SAP DB: com.sap.dbtech.jdbc.DriverSapDB

2、请叙述ODBC、POJO与JDBC

□ODBC(Open DataBase Connectivity)开放式数据库互连,是一数据访问接口,负责发送标准SQL语句传递给各种不同数据库并返回处理结果

□JDBC:(Java DataBase Connectivity standard)是一种可用于执行SQL语句语句的应用程序设计接口;由一java语言编写的类和界面组成

□POJO:(plain ordinary java object纯java对象)用于与数据库表建立映射的JAVA文件。JavaBean文件

3、事务处理有哪些步骤请列出,并列出相应的关键代码

①connection.setAutoCommit(false); //把自动提交关闭

② 正常的DB操作 //若有一条SQL语句失败了,自动回滚

③ connection.commit() //主动提交

或 connection.rollback() //主动回滚

4、Batch updates是什么?用来干什么?

□Batch updates 可批量更新

(1)对于Statement的批量更新处理:

stm.addBatch(String sql1); 方法会在批处理缓存中加入一条sql语句。

stm.addBatch(String sql2);

int[] results = stm.executeBatch() ,执行批处理缓存中的所有sql语句。

(2)对于PreparedStatement的批量更新处理:

pstm.setInt(1, 11);

pstm.setString(2,”haha”); …

pstm.addBatch() 将一组参数添加到此 PreparedStatement 对象的批处理命令中。

int[] results = pstm.executeBatch() 将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。

猜你感兴趣

更多 >>

评论

评 论

更多精彩内容