Tomcat与JavaWeb 4.2 数据库与数据源(DataSource)

1.    数据源简介

JDBC 2.0提供了javax.sql.DataSource接口,它负责建立与数据库的连接,当在应用程序中访问数据库时不必编写连接数据库的代码,可以直接从数据源获得与数据库的连接。

1.1    数据源和数据库连接池

在数据源中实现建立了多个数据库连接,这些数据库连接保存在连接池中。当Java程序访问数据库时,只需从连接池中取出空闲状态的数据库连接,当程序访问数据库结束后,再将数据库连接放回连接池,这样做可以提高访问数据库的效率。试想如果Web应用每次接收到用户请求,都和数据库建立一个新的连接,数据库操作结束后就断开连接,这样会耗费大量的时间和资源。因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码,并且要为这个连接分配资源。Java程序则要把代表连接的java.sql.Connection对象等加载到内存中,所以建立数据库连接的开销很大。

1.2    数据源和JNDI资源

DataSource对象通常是由Servlet容器提供的,因此Java程序无需自己创建DataSource对象,而只要直接使用Servlet容器提供的DataSource对象即可。而Java程序获得Servlet容器提供的DataSource对象的引用,则要依赖于Java的JNDI(Java Naming and Directory Interface)技术。

可以简单地把JNDI理解为一种将对象和名字绑定的技术,对象工厂负责生产出对象,这些对象都和唯一的名字绑定。外部程序可以通过名字来获得某个对象的引用。

在javax.naming包中提供了Context接口,该接口提供了将对象和名字绑定,以及通过名字来检索对象的方法。其主要方法:

  • bind(String name,Object object):将一个对象与一个名字绑定。
  • lookup(String name):返回与指定的名字绑定的对象。

Tomcat把DataSource作为一种可配置的JNDI资源来处理,生成DataSource对象的工厂为org.apache.commons.BasicDataSourceFactory。假定配置了名为"jdbc/BookDB"的DataSource,那么应用访问该DataSource可以通过 context.lookup("jdbc/BookDB")。

2.    配置数据源

为Web应用配置数据源涉及修改context.xml和web.xml文件,未来用到的时候再进行补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值