1. 创建JDBC应用的基本步骤?
导入JDBC类;
注册JDBC驱动,用于打开数据库连接通道;
打开连接:DriverManager.getConncetion();
使用Statement执行数据库操作;
提取数据:ResultSet.getXXX();
关闭连接。
2. 每种JDBC类型应该在什么时候使用?
有四种JDBC驱动类型:
如果使用Oracle、Sybase、或IBM,推荐使用类型4;
如果java应用同时访问多个数据库,推荐使用类型3;
类型3和4不适用时,可以使用类型2;
类型1一般不用于部署级驱动,仅用于开发和测试目的。
3. 如何注册一个驱动?
有两种方式:Class.forName()和DriverManager.registerDriver()。
Class.forName():动态加载类文件到内存并自动注册。推荐使用这种方法,可以使驱动注册可配置和可移植。
DriverManager.registerDriver():这个静态方法用于不兼容JDK的JVM,比如微软提供的JVM。
4. 连接到数据库的步骤?
注册驱动->创建连接->创建语句->执行查询->关闭连接。
5. 最快的JDBC驱动是什么?
性能和稳定性依赖于许多因素,比如:驱动代码、驱动大小、负载、网络拓扑、被翻译成不同API的请求次数。
6. 什么是连接Connection?
Connection接口包含与数据库通信的方法,其对象表示连接通信上下文。
7. ResultSet的类型有什么?
ResultSet中有三个常量定义游标:向前、向后、特定行。
ResultSet.TYPE_FORWARD_ONLY:游标只能在结果集中向前移动;
ResultSet.TYPE_SCROLL_INSENSITIVE:游标可以在结果集中向前或向后移动,但不会感知到结果集创建后数据库中的数据变化;
ResultSet.TYPE_SCROLL_SENSITIVE:游标可以在结果集中向前或向后移动,同时可以感知到结果集创建后数据库中的数据变化。
8. JDBC采用了什么设计模式?
JDBC对其实现做了一个抽象的解耦,因此采用了桥接模式。JDBC API提供了抽象,而JDBC驱动提供实现,在不修改客户端代码的情况下,新的驱动可以适配到JDBC API上。
9. JDBC4.0有什么优点?
自动加载JDBC驱动类;
增强连接管理:javax.sql.PooledConnection添加了新的方法;
用注解实现SQL的数据集实现;
SQL XML支持。
10. JDBC驱动类型有什么?
有4种JDBC驱动类型:
类型1:JDBC-ODBC桥接支持ODBC,调用可用的本地ODBC驱动的本地代码;
类型2:本地API,部分Java驱动,调用数据库厂商的本地库,这些代码通过网络与数据库通信;
类型3:JDBC-Net, 纯Java驱动,这个驱动与服务端中间件通信,然后与数据库通信;
类型4:Navive-protocol:纯Java驱动,使用数据库本地协议。
11. 不同类型的RowSet对象是什么?
有两种类型的RowSet:
有连接RowSet,一直存活到程序终止;
无连接RowSet,需要数据时连接,用完关闭。关闭后数据的修改会在重新连接后更新。
12. 什么是RowSet?
RowSet对象包含表格式的数据,使得它比ResultSet更灵活和更容易。RowSet对象是JavaBean组件。
13. JDBC DriverManager是什么?
一个用于管理数据库驱动列表的类,它匹配连接请求从java应用到合适的数据库驱动,通过通信子协议。
14. 基本的JDBC API组件有什么?
DriverManager、Driver、Connections、Statement、ResultSet、SQLException。
15. 描述一般的JDBC架构?
一般有两层组成:JDBC API,用于应用到JDBC 管理器的连接;JDBC驱动API,用于JDBC管理器到驱动的连接。
16. JDBC中定义的标准隔离级别是什么?
TRANSCATION_NONE
TRANSACTION_READ_COMMITTED
TRANSACTION_READ_UNCOMMITTED
TRANSACTION_REPEATABLE_READ
TRANSACTION_SERIALIZABLE
17. statement和preparedstatement的区别是什么?
PreparedStatement提供更好的性能,因为它是预编译的。PreparedStatement重用同样的执行计划,只是带有不同的参数,而不是每次创建一个新的执行计划。PreparedStatement用绑定参数发送到数据库引擎,这样允许不同的请求使用同样的PreparedStatement而带有不同的参数在同样的执行计划中。PreparedStatement更安全,因为它绑定变量,从而阻止SQL注入攻击。
18. 什么是Statement?
Statement封装SQL语句,传递到数据库进行解析、编译、计划、执行。
19. 什么是ResultSet?
ResultSet对象包含从数据库获取的数据,通过使用Statement对象执行SQL查询,可以遍历ResultSet的数据,java.sql.ResultSet接口表示数据库查询的结果集。
20. 什么是JDBC?
JDBC表示Java Database Connectivity,是一种用于Java语言和各种数据库之间实现数据库独立的连接的标准Java API。
21. 什么JDBC驱动?
JDBC驱动是一个接口,用于同数据库交互。为了连接独立的数据库,JDBC需要每一个数据库的驱动,驱动连接到数据库并在客户端和数据库之间实现转换查询和结果的协议。
22. 什么是JavaBean?
JavaBean是可重用的软件组件。