JDBC由Sun公司制定,全称Java DataBase Connectivity,是一种可以执行SQL语句并可返回结果的java API,支持多种关系型数据库,封装在Java.sql.*
它的具体位置在jre7lib t.jar
1、JDBC的工作原理
JDBC的最大特点是独立于具体的关系型数据库,它定义了一系列的Java类,完成数据库连接(Connections)、SQL语句(Statements)、结果集(ResultSet)和其他的数据库对象,从而达到Java程序和数据库交互的目的
2、JDBC的四种驱动类型
在Java程序中,JDBC可以分为以下4种驱动类型:
(1)JDBC-ODBC Bridge
用JDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并完成配置
可以看出,中间存在一个JDBC-ODBC的转换,影响了执行的效率
(2)JDBC Native Bridge
这种方式需要在执行JSP程序的机器上安装本地的针对特定数据库(MySQL/SQL/Oracle)的驱动程序,通过这个程序把对数据库的JDBC调用转化为数据库的API调用,性能比JDBC-ODBC更好,缺点是要安装驱动
(3)JDBC-Network Bridge
这种方式不需要安装驱动程序,直接用JDBC通过网络连接数据库,与平台无关,所以在WEB开发中大量使用
(4)Pure Java JDBC Driver
Java驱动程序运行在客户端,客户端可以直接访问数据库,其体系结构最为简单,因此安全性及程序的逻辑性不行
3、JDBC连接数据库(以mysql为例)
(1)加载JDBC驱动程序
通过java.lang.Class类中的静态方法forName实现
(2)提供JDBC连接的URL
协议:子协议:数据源标识
其中,协议:在JDBC中总是以jdbc开始
子协议:是Bridge的驱动程序或是数据库管理系统名称,如MySQL就是mysql,常用的端口号是3306
数据源标识:标记找出数据源的地址和连接接口
(3)创建数据库的连接
向java.sql.DriverManager请求获取Connection对象
(4)创建Statement
其中Statement分为三类,区别如下:
A、执行静态SQL:通过Statement实例实现
B、执行动态SQL:通过PreparedStatement实例实现
C、执行数据库存储过程:通过CallableStatement实例实现
(5)执行SQL语句,完成数据库的增删改或是查询功能
其中Statement接口提供了三种执行SQL语句的方法,区别如下:
A、Result executeQuery(String sqlString):用于查询数据库的SQL,如SELECT,返回一个结果集(ResultSet)
B、int executeUpdate(String sql):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL(数据定义)语句
C、boolean execute(String sql):用于返回多个结果集、多个更新计数或者二者组合(不太懂)
(6)得到处理结果(ResultSet)
(7)关闭JDBC对象
先关闭Statement再关闭Connection连接