配置好tomcat5.5的数据库连接池,相对以前的服务器版本会有些区别,在此把心得总结给大家,如有意见希望指点
一、服务器配置
1、配置全局的数据库连接池(此数据库连接池能在所有WEB服务器内站点使用)
server.xml中设置数据源
在<GlobalNamingResources> </GlobalNamingResources>节点中加入
<Resource name="JNDI名字" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="数据库名称" password="密码" driverClassName="数据库驱动" url="连接URL "/>
或者在context.xml中设置数据源链接
在<Context></Context>节点中加入
<Resource name="JNDI名字" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="数据库名称" password="密码" driverClassName="数据库驱动" url="连接URL "/>
2、配置局部数据库连接池(此数据库连接池只能在指定站点使用)
server.xml中设置数据源
在<host></host>结点中加入
<Context path="/站点路径名称" docBase="站点名称" debug="0" reloadable="true" crossContext="true">
<Resource name="JNDI名字" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="用户名" password="密码" driverClassName="数据库驱动 " url="连接URL"/>
</Context>
二、站点设置
在web.xml中添加
<resource-ref>
<description>DB Connection</description>
<res-ref-name>JNDI名字</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
测试程序
package test;
import java.sql.*;
import javax.naming.*;
import javax.sql.*;
import java.util.*;
public class LinkDB{
Connection conn=null;
Statement ps = null;
ResultSet rs = null;
public ResultSet getRS(){
try{
InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("java:comp/env/JNDI名字");
conn=ds.getConnection();
ps = conn.createStatement();
rs = ps.executeQuery("select * from admin;");
}catch(Exception e){
e.printStackTrace();
}
return rs;
}
}
或者(需要下载jstl.jar、standard.jar放置在lib下面)
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<sql:query var="rs" dataSource="JNDI名字 ">
select name, passwd, type from admin
</sql:query>
<html>
<head>
<title>DB Test</title>
</head>
<body>
<h2>Results</h2>
<c:forEach var="row" items="${rs.rows}">
Foo ${row.name}<br/>
Bar ${row.passwd}<br/>
</c:forEach>
</body>
</html>
备注:
1、 服务器配置需要放置commons-dbcp-1.2.2.jar、以及相应的JDBC驱动到tomcat的common/lib下面
2、 我在使用LinkDB.java的时候ic.lookup("java:comp/env/JNDI名字");如果没有加入java:comp/env/会出现name jdbc is not bound in this context错误,而使用JSTL的时候则不用
<script></script>