JDBC
- JDBC(Java Database Connectivity,Java数据库连接),提供了一种与平台无关的用于执行SQL语句的标准Java API,可以方便的实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成。
- 在实际开发中可以直接使用JDBC进行各个数据库的连接与操作,而且可以方便的向数据库中发送各种SQL命令。在JDBC中提供的是一套标准的接口,这样,各个支持JAVA的数据库生产商只要按照此接口提供相应的实现,则就都可以使用JDBC进行操作。极大的体现了JAVA的可移植性的设计思想。
JDBC驱动分类
JDBC本身提供的是一套数据库操作标准,而这些标准又需要各个数据库厂商实现,所以针对于每一个数据库厂商都会提供一个JDBC的驱动程序,目前比较常见的JDBC驱动程序可分为以下四类:
- JDBC-ODBC桥驱动
- JDBC本地驱动
- JDBC网络驱动
- 本地协议纯JDBC驱动
JDBC-ODBC桥驱动
JDBC-ODBC是SUN提供的一个标准的JDBC操作,直接利用微软的ODBC进行数据库的连接操作,但是,这种操作性能较低,所以通常情况下是不推荐使用这种方式进行操作的。
JDBC本地驱动
直接使用各个数据库生产商提供的JDBC驱动程序,但是因为其只能应用在特定的数据库上,会丧失掉程序的可移植性,但是这样操作的性能较高。
JDBC网络驱动
这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。通常,这是最为灵活的JDBC驱动程序。
本地协议纯JDBC驱动
这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。
JDBC的主要操作类及接口
No. | 类及接口 | 描述 |
1 | java.sql.DriverManager | 用于管理JDBC 驱动程序 |
2 | ljava.sql.Connection | 用于建立与特定数据库的连接,一个连接就是一个会话,建立连接后便可以执行SQL 语句和获得检索结果 |
3 | java.sql.Statement | 一个Statement对象用于执行静态SQL语句,并获得语句执行后产生的结果 |
4 | java.sql.PreparedStatement | 创建一个可以编译的SQL语句对象,该对象可以被多次运行,以提高执行的效率,该接口是Statement的子接口 |
5 | java.sql.ResultSet | 用于创建表示SQL语句检索结果的结果集,用户通过结果集完成对数据库的访问 |
6 | java.sql.Date | 该类是标准java.util.Date的一个子集,用于表示与SQL DATE相同的日期类型,该日期不包括时间 |
7 | java.sql.Timestamp | 标准java.util.Date类的扩展,用于表示SQL时间戳,并增加了一个能表示纳秒的时间域 |
8 | java.sql.CallableStatement | 用于执行SQL存储过程 |
9 | java.sql.DatabaseMetaData | 与java.sql.ResultSetMetaData一同用于访问数据库的元信息 |
10 | java.sql.Driver | 定义一个数据库驱动程序的接口 |
11 | java.sql.DataTruncation | 在JDBC遇到数据截断的异常时,报告一个警告(读数据时)或产生一个异常(写数据时) |
12 | java.sql.DriverPropertyInfo | 高级程序设计人员通过DriverPropertyInfo与Driver进行交流,可使用getDriverPropertyInfo获取或提供驱动程序的信息 |
13 | java.sql.Time | 该类是标准java.util.Date 的一个子集,用于表示时、分、秒 |
14 | ljava.sql.SQLException | 对数据库访问时产生的错误的描述信息 |
15 | java.sql.SQLWarning | 对数据库访问时产生的警告的描述信息 |
16 | java.sql.Types | 定义了表示SQL类型的常量 |