JavaWeb开发实战
第2章JDBC进阶
一、选择题。(每小题2分,共20分)
1.下列选项中,如果不考虑,数据将会存在三种并发问题的是( C )。
A.原子性 B.一致性
C.隔离性 D.持久性
2.下列选项中,隔离级别的安全性最低的是(B)。
A.serializable B.read uncommitted
C.repeatable read D.read committed
3.下列选项中,允许脏读的隔离级别是(A)。
A.read uncommitted B.repeatable read
C.read committed D.serializable
4.下列选项中,不允许脏读,允许不可重复读和幻读的隔离级别是(C)。
A.read uncommitted B.repeatable read
C.read committed D.serializable
5.下列选项中,不是Connection对象为事务管理提供的方法的是(D)。
A.commit () B.setAutoCommit(boolean autocommit)
C.rollback() D.setAutoCommit(false)
6.下列选项中,可以体现数据连接池可以更快的系统响应速度的是(A)。
A.数据库连接池在初始化过程中,已经创建若干数据库连接置于池中备用
B.多程序共享同一数据库的系统,可在应用层通过数据库连接池配置某一程序能够使用的最大数据库连接数
C.在数据库连接池实现中,根据连接占用超时设定,强制收回被占用连接
D.避免频繁创建、释放连接引起的大量性能开销
7.下列选项中,采用minConn和maxconn来限制连接的数量的是(D)。
A.连接池的创建 B.连接池的管理
C.连接池的关闭 D.连接池的配置
8.下列方法中,用于设置数据库密码的方法是(B)。
A.void setUser(String user) B.void setPassword(String password)
C.void setMaxPoolSize(int maxPoolSize) D.Connection getConnection()
9.下列选项中,用于设置连接数据库的路径的方法是(A)。
A.void setUrl(String url) B.void setMinIdle(int minIdle)
C.Connection getConnection() D.void setInitialSize(int initialSize)
10.下列选项中,不允许不可重复读,允许幻读的隔离级别是(C)。
A.read uncommitted B.read committed
C.repeatable read D.serializable
二、判断题。(每题2分,共20分)
- 原子性是整个事务中的所有操作不可分割,不停滞在中间某个环节。(√)
- 不同事务隔离级别能够结婚的数据并发问题的能力相同。(×)
- 四种隔离级别安全性最高的是串行化。(√)
- 隔离级别的安全性能越高,执行效率也越高。(×)
- 默认情况下,JDBC的事务是自动提交的。(√ )
- 数据库连接池DBCP和C3P0都是实现DataSource接口的。(√)
- 提交事务会将整个事务中的操作更新到数据库。( √)
- 回滚事务则会取消整个事务中的未执行所有操作。(× )
- 事务完成时,数据可以不一致。(×)
- 事务一旦提交,对数据库中的数据的改变就是永久性的。(√ ) 三、填空题(每题2分,共20分)
1. MySQL数据库共有 自动提交事务 和 手动提交事务 两种方式管理事务。
2. ACID包含 原子性 、一致性、隔离性、持久性。
3. 隔离性 是指事务与事务之间互相独立,彼此隔离。
4. 如果不考虑隔离性,数据库将会存在 脏读 、 不可重复度 、 幻读 三种并发问题。
5. MySQL数据库默认的隔离级别为 repeatable read 。
6. 数据库连接池 负责分配、管理和释放数据库连接,允许应用程序重复使用一个现有的数据库连接。
7. C3P0数据库连接池通过核心类 ComboPooledDataSource 实现DataSource接口。
8. DBCP数据库连接池通过 BasicDataSource 核心类实现DataSource接口。
9. 默认情况下,MySQL 自动提交事务 ,即每执行一条SQL语句提交一次事务。
10. 通过MySQL的全局变量 autocommit 可以查看当前数据库的事务状态。
四、简答题。(每题10分,共30分)
- 数据库连接池有哪几个方面的优势。 资源重用,更快的系统响应速度,新的资源分配手段,统一的连接管理,避免数据库连接泄露
- 简述事务的概念。 事务,是指数据库中的一个操作序列,它由一条或多条SQL命令所组成,这些SQL命令不可分割,只有当事务中的所有SQL命令被成功执行后,整个事务引发的操作才会被更新到数据库,如果至少一条执行失败,所有操作将会被取消。
- 简述数据库定义的四种隔离级别 。
Read uncommitted(读未提交) 一个事务读到的另一个事务没有提交的数据。
Read committed(读已提交) 一个事务读到另一个事务已经提交的数据。
Repeatable read(可重复读) 在一个事务中读到的数据始终一致,无论别的事务是否提交。
Serializable (串行化) 同时只能执行一个事务,相当于是事务中的单线程。
五、操作题。(每题10分,共10分)
- DOS命令启动MySQL服务,登录MySQL数据库,查看数据库中所有库,退出MySQL数据库,终止MySQL服务。
net start mysql;
mysql -uroot -p
show databases;
exit;
net stop mysql