数据库面试,详解4道常见JDBC面试题

2021-08-27 11:45:00 浏览数 (1)

JDBC提供了诸如查询和更新数据库中数据的方法,本质上是用来规范访问数据库的应用程序接口。总的来说,JDBC在数据库中有着不容忽视的地位,需要我们花费足够的时间去学习,无论是在求职面试还是学习中都需要重视。下面为大家介绍4道经典JDBC面试题。

1、JDBC操作数据库的步骤 ?

(1)、注册数据库驱动。

(2)、建立数据库连接。

(3)、创建一个Statement。

(4)、执行SQL语句。

(5)、处理结果集。

(6)、关闭数据库连接

2、JDBC中的Statement 和PreparedStatement,CallableStatement的区别?

区别:

(1)、PreparedStatement是预编译的SQL语句,效率高于Statement。

(2)、PreparedStatement支持?操作符,相对于Statement更加灵活。

(3)、PreparedStatement可以防止SQL注入,安全性高于Statement。

(4)、CallableStatement适用于执行存储过程。

3、说说数据库连接池工作原理。

JAVA EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

数据库连接池的实现方案?

连接池使用集合来进行装载,返回的Connection是原始Connection的代理,代理Connection的close方法,当调用close方法时,不是真正关连接,而是把它代理的Connection对象放回到连接池中,等待下一次重复利用。

4、execute,executeQuery,executeUpdate的区别是什么?

Statement的execute(String query)方法用来执行任意的SQL查询,如果查询的结果是一个ResultSet,这个方法就返回true。如果结果不是ResultSet,比如insert或者update查询,它就会返回false。我们可以通过它的getResultSet方法来获取ResultSet,或者通过getUpdateCount()方法来获取更新的记录条数。

·Statement的executeQuery(String query)接口用来执行select查询,并且返回ResultSet。即使查询不到记录返回的ResultSet也不会为null。我们通常使用executeQuery来执行查询语句,这样的话如果传进来的是insert或者update语句的话,它会抛出错误信息为 “executeQuery method can not be used for update”的java.util.SQLException。

Statement的executeUpdate(String query)方法用来执行insert或者update/delete(DML)语句,或者 什么也不返回DDL语句。返回值是int类型,如果是DML语句的话,它就是更新的条数,如果是DDL的话,就返回0。

· 只有当你不确定是什么语句的时候才应该使用execute()方法,否则应该使用executeQuery或者executeUpdate方法。

0 人点赞