连接池
现在很多Web服务器(Weblogic, WebSphere, Tomcat)都提供了DataSoruce的实现,即连接池的实现。通常我们把DataSource的实现,按其英文含义称之为数据源,数据源中都包含了数据库连接池的实现。
也有一些开源组织提供了数据源的独立实现:
DBCP 数据库连接池(tomcat):DBCP 是 Apache 软件基金组织下的开源连接池实现,使用DBCP数据源,应用程序应在系统中增加如下3个 jar 文件:
commons-dbcp.jar:连接池的实现
commons-pool.jar: 连接池实现的依赖类
commons-collections.jar :连接池实现的集合类
连接属性设置: driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/mydb2
username=root
password=root
C3P0 数据库连接池(hibernate):
1)传统方式找DriverManager要连接,数目是有限的。
2)传统方式的close(),并没有将Connection重用,只是切断应用程序和数据库的桥梁,即无发送到SQL命令到数据库端执行
3)项目中,对于Connection来说,不会直接使用DriverManager取得,而使用连接池方式。
4)DBCP和C3P0,都是Java开源的,都必须直接或间接实现javax.sql.DataSource接口
5)DBCP连接池需要dbcp.properties文件,同时需加入3个对应的jar包
*6)C3P0连接池需要在/WEB-INF/classes/目录下存放c3p0-config.xml文件,该类ComboPooledDataSource在创建时
会自动在指定的目录下找xml文件,并加载默认设置
JNDI技术简介:
JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.naming包,
这套API的主要作用在于:它可以把DataSource对象放在一个Tomcat容器中(JNDI容器),并为容器中的DataSource对象取一个名称,以后程序想获得DataSource对象,只需通过名称检索即可。
其核心API为Context,它代表JNDI容器,其lookup方法为检索容器中对应名称的对象。
JNDI和在tomcat中配置DBCP连接池
a)JNDI是Java命名和目录接口,不同的Web服务器有着不同的实现
b)不同进程之间,可不同机器之间访问,叫远程访问
c)JNDI和JDBC一样,都属于JavaEE规则之一
d)基于tomcat如何配置DBCP连接池
>>修改tomcat/conf/context.xml文件
>>加入DB相关的jar包到tomcat/lib目录下
>>重新启动tomcat服务器
e)访问tomcat服务器的JNDI代码如下,是固定的:
Context tomcatContext = (Context) context.lookup(“java:comp/env”);
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!