JDBC连接数据库
JDBC基础
JDBC是用来与数据库进行交互的一个通用接口,它是通过数据库端的CLI(Call Level Interface)连接到处理SQL语句的引擎来与数据库进行交互的,其运行时的流程可以用下图来表示:
图中各组成部分的说明:
JDBC library
我认为这是用来管理JDBC driver的,因为JDBC要屏蔽数据源的多样性,因此 它需要通过JDBC library来管理系统中注册的JDBC driver,并且根据配置的driver来 连接数据库。
JDBC driver
数据库驱动的主要作用是将程序语言(如Java)映射为相应数据库的SQL语言。
SQL CLI
用来将SQL语句转为对数据库操作的指令,是数据库内部的东西,我猜的。
JDBC的设计目标是用来完成以下操作:
² 接收JDBC API的请求并将他们转为SQL请求
² 将这个请求提交给RDBMS上的SQL处理引擎
² 将返回的结果转为Java数据结构
建立与终止到RDBMS的连接
JDBC版本的演进
JDBC1:
在这个版本的JDBC中,连接(和断开连接)数据库所需的全部代码都需要程序员去编写,甚至选择和激活JDBC驱动程序也需要程序员来手动控制。
这种方式是“硬编码”的方式,它往往只针对某一种数据库产品进行编程,不是很灵活,不能屏蔽数据库系统的差异。
JDBC2:
JDBC2的一个重大改进是data source概念的引入。程序员可以从data source中获得数据库的连接,从而屏蔽了数据库系统(驱动程序)的差异。这中透明是通过对不同的data source配置来实现,而不必修改任何代码。
另一个改进是数据库连接池(connection pool)。数据库连接池的出现与网络的发展密不可分,随网络的普及,人们需要更好地处理并发操作,这样,一种可靠地,能更好地利用资源的数据库连接方式成为很显著的一种需求。于是,人们开发了很多类似数据库连接池的工具,可由于缺乏统一的规范,这些工具
JDBC3:
显著地改进在于提出了业务逻辑与具体的资源相分离的结构。在JDBC3中,正式提出了他们倾向于使用JNDI来获得data source ,使用JNDI就可以做到将业务逻辑与