10 个 JDBC 相关的面试题

1. 什么是 jdbc?

连接数据库的程序接口规范 api

 

2.创建一个  jdbc 连接的主要步骤有哪些?

Load driver(比如

Class.forName("com.mysql.jdbc.Driver");

)  –>  获取连接 –> 创建 Statement 对象 –>  执行 sql –> 获取结果集 –> 关闭连接

 

3.数据库中的脏读是什么?

在另一个事务 commit 或 rollback 之前读数据,导致数据出错的情况。

 

4.什么是两阶段提交?

假设:该分布式系统中,存在一个节点作为协调者(Coordinator),其他节点作为参与者(Cohorts)。且节点之间可以进行网络通信。

第一阶段,提交请求阶段:协调者发起投票

第二阶段,提交执行阶段:如果所有投票是 yes,则执行

 

5.Java 中,Statement 分为哪几种类型?

普通的 statement,没有sql 参数。

Statement   stmt = conn.createStatement( );
ResultSet rs = stmt.executeQuery(sql);  

PreparedStatement(查询复用并且可以添加 sql参数)

String SQL = "Update stock SET limit = ? WHERE stockType = ?";
PreparedStatement  pstmt = conn.prepareStatement(SQL);
ResultSet rs = pstmt.executeQuery();

CallableStatement (用于访问存储过程,可接受运行时参数)

CallableStatement cs = con.prepareCall("{call SHOW_SUPPLIERS}"); 
ResultSet rs = cs.executeQuery();

 

6.什么是连接池?

 

7.冷拷贝 与 热拷贝 的区别?

 

8. jdbc 中的常用的锁机制有哪些?