- JDBC Java DataBase Connectivity
JDBC是用java书写的数据库连接类,开发人员可以根据已经封装好的JDBC API进行开发,JDBC主要操作对象是关系数据,并且具有良好的可移植性,写好了对于sybase的访问程序,可以用到Oracle的访问
需要认识到JDBC的重要性,他是JAVA连接数据库的标准方法
- ODBC Open DataBase COnnectivity
ODBC是为解决易购数据库间的数据共享而产生的,现已成为WOSA(The Windows Open System Architecture)的主要部分和基于windows环境的一种数据库访问接口标准ODBC,为易购数据库访问提供统一接口,允许应用程序以SQL为数据存取标准,存取不同DBMS管理的数据;使应用程序直接操纵DB中的数据,免除随DB的改变而改变。
ODBC由三个部分组成:
- 应用程序
- 驱动管理器
- 驱动程序
ODBC应用程序主要解决以下工作
-
Request a connection(i.e.session) with a data source.
-
Send SQL requests to the data source.
-
Define storage areas and data formats for the result of SQL requests.
-
Request results.
-
Process errors.
-
Request a commit or rollback of operations for transcation control.
- Terminate a connection a data source.
ODBC驱动管理器
驱动管理器本身是MS Windows中的一个动态连接链接库文件(ODBC.DLL)。应用程序透过驱动管理器去加载并连接数据源的驱动程序(driver)并连接数据源(三者的关系)。驱动管理器主要工作如下:
- Uses ODBC INI file to map a data source name to a specific driver DLL.
- Processes server ODBC initialization calls.
- Provides entry points to ODBC functions for each driver.
- Provides parameter validation and sequence validation for ODBC calls.
ODBC驱动程序
驱动程序也是一个动态连接链接库文件,当驱动程序使能驱动管理器工作时,数据源的驱动程序需要作出相应,执行与驱动管理要求相关的函数,并与数据源做沟通
- Establishes a connect to a data source.
- Submits requests to a data sources.
- Translates data to or from other formats,if requested by the application.
- Return results to the application.
- Formats errors into standard error codes and returns them to the application.
- Declares and manipulates cursors if necessary (invisible to the application).
- Initiates transactions if the data source requires explicit transaction initiation(invisible to the app).
- DAO Data Access Object
DAO是一个数据访问接口,也即一种应用程序编程接口(API),存在于微软的Visual Basic中,它允许程序员请求微软的Access数据库访问,在J2EE中,他们在逻辑上的作用是一样的
- 连接池
连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用,连接池使用基于的事实是:正常需要处理的事务是很短的,比起新建立一个连接,不如一开始就建立一些连接,不用的时候就闲置,需要的时候就从闲置的连接里面选取一个
这里和线程池的关系就联系起来了,因为线程池就是创建一定数量的线程备用,需要的时候就唤醒闲置的线程。
数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后 ,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的连接,极大地节省系统资源和时间。
连接池实现模式:一个连接池类(DBConnectionPool)和一个连接池管理类(DBConnectionPoolManager)。
总结:JDBC和ODBC都是有关数据库连接和操作的API,而连接池概念更多的倾向于实现技术,就是处理并发任务和线程池的一个方法,也被广泛采用