本笔记汇集了对Java数据库连接(JDBC)技术的学习心得与实践经验,旨在帮助初学者快速掌握JDBC的基础知识和高级特性。
JDBC 是 Java 语言访问数据库的一套接口集合,在本质上是调用者(程序员)与实现者(数据库厂商)之间的协议。由数据库厂商提供的驱动程序实现了 JDBC API,使得开发人员可以使用纯Java的方式连接并操作数据库。
ODBC 则是一种基于C语言的数据库访问接口,而JDBC 可以视为 Java 版本的 ODBC。JDBC 的特性包括高度一致性和简单性(常用的接口只有4、5个)。
在 JDBC 中有两个主要包:java.sql 和 javax.sql。
- **java.sql** 包含了用于基本数据库编程服务的类和接口,如生成连接、执行语句以及准备语句和运行批处理查询等。此外还包括一些高级功能,例如批处理更新、事务隔离及可滚动结果集等。
- **javax.sql** 提供了更多的高级操作接口与类,比如为连接管理、分布式事务和旧式连接提供更好的抽象,并引入容器管理的连接池、行集等功能。
以下是 JDBC 中几个重要的 API 说明:
- `java.sql.Connection`:代表特定数据库的会话。能够通过 getMetaData 方法获取关于支持的 SQL 语法、存储过程及功能的信息。
- `java.sql.Driver`:每个驱动程序类都需要实现此接口,同时每一个数据库驱动应当提供一个实现了 Driver 接口的具体类。
- `java.sql.DriverManager`(Class):管理一组 JDBC 驱动的基本服务。作为初始化的一部分,它会尝试加载在 jdbc.drivers 系统属性中引用的驱动程序。
- `java.sql.Statement`:用于执行静态 SQL 语句并返回其生成的结果对象。
- `java.sql.PreparedStatement`:继承自 Statement 接口,表示预编译过的 SQL 语句的对象。可以高效地多次使用该对象来执行相同的语句。
- `java.sql.CallableStatement`:用来访问数据库中的存储过程,并提供指定输入/输出参数的方法。
- `java.sql.ResultSet`:代表查询返回的数据库结果集。
- `java.sql.ResultSetMetaData`:用于获取 ResultSet 对象中列的信息。