数据库连接池就是在应用程序启动时就创建足够多的数据库连接池,在java程序中需要访问
数据库时就可以通过数据源取得一个空闲连接,用完在返还到连接池中
实例:
在Tomcat6.0中+MySQL5.5数据源和连接池的配置
(1)将数据库的JDBC驱动程序复制到<CATALINA_HOME>/common/lib目录下
(2)在<CATALINA_HOME>/conf/server.xml中配置数据源和连接池,例如
<Context path="/JSP_JDBC" docBase="JSP_JDBC" debug="0" reloadable="true">
<ResourceParams name="jdbc/myDataSource" auth="Container" type="javax.sql.DataSource"/>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>1000</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>root</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost/test?autoReconnect=true</value>
</parameter>
<ResourceParams>
<Context>
在web.xml文件中配置数据源连接池的引用
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/myDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
在jsp或者Servlet中通过数据源访问数据库
<html>
<head><title>通过数据源访问数据库</title></head>
<body>
通过数据源访问数据库
<%
Connection conn=null;
Statement stat=null;
ResultSet rs=null;
//从数据源连接池取得连接
Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/myDataSource");
conn=ds.getConnection();
//查询数据表
stat=conn.createStatement();
String sql="select * from user";
rs.stat.executeQuery(sql);
//输出查询结果到界面
while(rs.next()){
out.println("<li>账号:"+rs.getString(2).trim());
out.println("密码:"+rs.getString(3).trim()+"</li>");
}
//关闭连接,释放资源
rs.close();
stat.close();
conn.close();
%>
</body>
</html>