Java应用程序通过JDBC驱动器访问数据库,与不同的JDBC驱动器通信,归功于java.sql.DriverManager类,它运用桥梁设计模式:
普通的连接访问数据库的方法,效率和性能比较低,于是有了JDBC2.0。JDBC2.0提供了javax.sql.DataSource接口,好处是:
1、不必编写连接数据库的代码;
2、事先建立多个连接池,大大的提高效率;
## 如何实现??(依赖于Java的JNDI技术)
DataSource对象通常由Servlet容器提供,Java程序无需创建,只要直接使用Servlet提供的DataSource对象即可。
JNDI是一种将对象和名字绑定的技术,对象工厂负责产出对象,外部程序可以通过名字来过得某个对象的引用。
如图,主要是javax.naming.Context接口,其中有两个方法,bind(name, object)和lookup(name),后者返回与指定名字绑定的对象。
Tomcat 把DataSource作为一种可配置的JNDI资源来处理。
——————
## 配置数据源
为web应用配置数据源涉及context.xml(加入定义数据源的<Resource>元素)和web.xml文件(加入<resource-ref>元素)。
配置信息:
在程序中使用:
如图,从数据源获取到连接,后面的执行sql语句就和普通的访问数据库的方法完全一样啦!!
注意: 由于数据源由Servlet容器创建并维护,因此必须把JDBC驱动器的jar包复制到Tomcat的lib目录下,从而确保Servlet容器能访问到驱动器类库。(不能再放到应用的WEB-INF/lib目录下了)。