文章出自:http://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() 将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。