JNDI 、C3P0 、DBCP、JDBC、ODBC的区别

JNDI 即 Java Naming and Directory Interface,中文叫Java命名和目录接口,是一组在Java应用中访问命名和目录服务的API。

DBCP和 C3p0  这两个是缓存的lib,一般和Hibernate等这样的中间件组合使用

JDBC 是JAVA连接数据库的组件,再加上驱动,就可以连接各种数据库。

ODBC  是WINDOWS平台的一个数据库连接标准,使用越来越少了。


1.基于JNDI 、C3P0 、DBCP技术的数据连接池

(1)JNDI(Java Naming and Directory Interface ):是SUN公司提供的一种标准的Java命名系统接口,是一组在Java应用中访问命名和目录服务的API。命名服务是将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,它提供了应用编程接口(application
programming interface,API)和服务提供者接口(service provider interface,SPI)。这一点的真正含义是,要让应用与命名服务或目录服务交互,必须有这个服务的JNDI服务提供者,这正是JNDI
SPI发挥作用的地方。服务提供者基本上是一组类,这些类为各种具体的命名和目录服务实现了JNDI接口—很象JDBC驱动为各种具体的数据库系统实现了JDBC接口一样。作为一个应用开发者,不必操心JNDI
SPI。只需要确认要使用的每一个命名或目录服务都有服务提供者。

(2)C3P0:连接池作者是《星球大战》迷,C3P0就是其中的一个机器人,并且这个名称中包涵connection 和pool的单词字母。因此叫这个名字。 

(3)DBCP(DataBase connection pool):是 apache 上的一个 java 连接池项目,也是 tomcat
使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar  ,common-collections.jar
 (4)JDBC(Java DataBase 
Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程序编程接口(API),它由Java 
语言编写的类和接口组成,旨在让各数据库开发商为Java程序员提供标准的数据库API。 JDBC 
API定义了若干Java中的类,表示数据库连接、SQL指令、结果集、数据库元数据等。它允许Java程序员发送SQL指令并处理结果。通过驱动程序管理器,JDBC 
API可利用不同的驱动程序连接不同的数据库系统。
 (5)ODBC(Open DataBase 
Connectivity)是微软倡导的、当前被业界广泛接受的、用于数据库访问的应用程序编程接口(API),它以X/Open和 
ISO/IEC的调用级接口(CLI)规范为基础,并使用结构化查询语言(SQL)作为其数据库访问语言。 ODBC总体结构有四个组件:

区别和联系:
JDBC与ODBC都是基于X/Open的SQL调用级接口, 
JDBC的设计在思想上沿袭了ODBC,同时在其主要抽象和SQL 
CLI实现上也沿袭了ODBC,这使得JDBC容易被接受。JDBC的总体结构类似于ODBC,也有四个组件:应用程序、驱动程序管理器、驱动程序和数据源。
JDBC保持了ODBC的基本特性,也独立于特定数据库。

你可能感兴趣的:(数据库,数据源)