### JDBC资料文档第一部分 #### 一、JDBC 概述 JDBC(Java Database Connectivity),即Java数据库连接,是一种用于执行SQL语句的标准Java API,它可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了面向数据库的一定程度的抽象,基本上屏蔽了不同数据库系统的具体细节。 从物理结构上看,JDBC是一组Java语言访问数据库的接口集合。这些接口允许Java程序员以一种一致的方式连接和操作各种类型的数据库。从本质上来讲,JDBC是调用者(通常是程序员)和实现者(通常是数据库厂商)之间的一种协议。这种协议是由数据库厂商以驱动程序的形式提供给用户的,以便于Java应用程序能够直接与数据库交互。 #### 二、JDBC与ODBC对比 - **ODBC**:是基于C语言的数据库访问接口,它定义了一种标准的API,用于应用程序与数据库管理系统(DBMS)之间的通信。 - **JDBC**:可以被认为是Java版本的ODBC,但它的设计更加符合Java语言的特点,具有更好的跨平台性和更高的性能。 #### 三、JDBC的主要特性 1. **一致性**:JDBC为所有数据库提供了统一的API,这使得开发人员可以使用相同的编程模型来连接不同的数据库。 2. **简单性**:JDBC的核心API非常简洁,常用的接口仅有几个,易于学习和使用。 #### 四、JDBC包介绍 1. **java.sql**:这是JDBC的基础包,包含了用于基本数据库编程的服务,例如创建连接、执行语句、准备语句和运行批处理查询等。此外,还有一些高级处理,如批处理更新、事务隔离和可滚动结果集等。 2. **javax.sql**:提供了一些高级接口和类,用于更复杂的数据库操作,如连接管理、分布式事务和旧有连接的改进等。主要包含以下对象和接口: - **Connection**:表示与特定数据库的连接,能够获取数据库的信息、支持的SQL语法、存储过程等。 - **Driver**:每个驱动程序类必须实现的接口,每个数据库驱动程序都应该提供一个实现了Driver接口的类。 - **DriverManager**:管理一组JDBC驱动程序的基本服务,作为初始化的一部分,此接口会尝试加载在“jdbc.drivers”系统属性中引用的驱动程序。 - **Statement**:用于执行静态SQL语句并返回其生成结果的对象。 - **PreparedStatement**:继承自Statement接口,表示预编译的SQL语句的对象,可以高效地多次执行同一语句。 - **CallableStatement**:用于访问数据库中的存储过程,提供了一些方法来指定语句所使用的输入/输出参数。 - **ResultSet**:查询返回的数据库结果集。 - **ResultSetMetaData**:用于获取关于ResultSet对象中列的类型和属性信息的对象。 #### 五、JDBC驱动程序分类 根据工作方式的不同,JDBC驱动程序可以分为四类: 1. **JDBC-ODBC Bridge + ODBC驱动**:这种驱动将JDBC调用转换为ODBC调用,再由ODBC驱动转换为访问数据库的命令。优点是可以利用现有的ODBC数据源来访问数据库,但效率和安全性相对较差。 2. **基于本地API的部分Java驱动**:应用程序通过本地协议与数据库进行交互,然后通过驱动程序中的Java部分返回结果给客户端程序。这种驱动的效率较高,但安全性较差。 3. **纯Java网络驱动**:通过中间服务器实现Java应用程序与数据库之间的通信。这种方式虽然提高了安全性,但由于存在两段通信,因此效率较低。 4. **纯Java本地协议**:通过本地协议用纯Java直接访问数据库。这种方式效率高且安全性好,是目前最常用的一种JDBC驱动类型。 #### 六、JDBC编程步骤 - **注册一个驱动程序**:注册驱动程序有三种方式: - 方式一:`Class.forName("oracle.jdbc.driver.OracleDriver");` - 方式二:`Driver drv = new oracle.jdbc.driver.OracleDriver(); DriverManager.registerDriver(drv);` - 方式三:在编译时通过虚拟机参数加载驱动程序,例如:`javac -Djdbc.drivers=oracle.jdbc.driver.OracleDriver xxx.java` 以上是对JDBC资料文档第一部分的总结和扩展,希望能够帮助读者更好地理解JDBC的基本概念和技术细节。
剩余12页未读,继续阅读
- 粉丝: 3
- 资源: 12
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之70-climbing-stairs.c
- C语言-leetcode题解之68-text-justification.c
- C语言-leetcode题解之66-plus-one.c
- C语言-leetcode题解之64-minimum-path-sum.c
- C语言-leetcode题解之63-unique-paths-ii.c
- C语言-leetcode题解之62-unique-paths.c
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c
- C语言-leetcode题解之58-length-of-last-word.c
- 计算机编程课程设计基础教程