一。介绍:
在J2EE的开发中,我们要经常进行三个操作:
1,打开连接
2,执行相关操作
3,关闭连接
如果我们有多个用户进行这个操作,那么打开和关闭对系统的性能影响很大,所以我们用连接池能够提高系统性能.
数据源和连接池:
数据源(java.sql.DataSource),只是一个接口。它有三种实现:
1,基本实现,产生一个标准的连接对象
2,连接池实现,产生一个自动参与到连接池中的连接对象,这种实现需要和中间层连接池管理器工作在一起
3,分布式事务实现,产生一个用于分布式事务的连接对象,这种连接对象几乎总是参与到连接池中。这种实现需要和一个中间层事务管理器和连接池管理器一起工作。
二。配置。
在Tomcat的server.xml文件中加入以下代码:
注意:此数据源对 <Context path="/myjsp" debug="0" docBase="G:\myjsp" reloadable="true"> 有效
在%tomcat%/common/lib目录下放入相关数据库的驱动。我用的是SQLServer,如下图:
<Context path="/myjsp" debug="0" docBase="G:\myjsp" reloadable="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_MysqlTest_log." suffix=".txt" timestamp="true"/> <Resource name="jdbc/coolbi" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/coolbi"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>username</name> <value>sa</value> </parameter> <parameter> <name>password</name> <value></value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs</value> </parameter> </ResourceParams> </Context>
然后测试代码:test.jsp
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%!
static final String JNDI_NAME="java:comp/env/jdbc/coolbi";
%>
<%
Connection conn = null;
try
{
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup(JNDI_NAME);
conn = ds.getConnection();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
<%=conn%>
结果,大家可以看到打印出来的是一个:org.apache.commons.dbcp.PoolableConnection@1ce4a8a