tomcat下jndi数据连接池的配置
本例使用的数据库为Ms SQL Server 2000,对于其它数据库只是修改一下相应的参数即可,
服务器是Tomcat5.5,与之间的版本配置连接池最简便
自己总结了一下,希望起到一个抛砖引玉的作用总结:第一步:
将驱动程序(jar包)放到tomcat安装目录下的common\lib文件夹下第二步:
在Tomcat的webapps目录随便创建一个工程目录,例如myjdbc。在myjdbc目录下创建META-INF目录,在此目录下创建一个context.xml文件,里面的内容如下:
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="" driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://localhost/pubs"/> </Context>
附注如下:
Tomcat标准数据源资源工厂配置项如下:
*driverClassName-所使用的JDBC驱动类全称。
*maxActive-同一时刻可以自数据库连接池中被分配的最大活动实例数。
*maxIdle-同一时刻数据库连接池中处于非活动状态的最大连接数。
*maxWait-当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。
*password-传给JDBC驱动的数据库密码。
*url-传给JDBC驱动的连接URL。
*user-传给JDBC驱动的数据库用户名。
*validationQuery-一个SQL查询语句,用于在连接被返回给应用前的连接池验证。
* 如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句。jdbc/test是数据源的名称(随意写,要和web.xml文件中<res-ref-name>jdbc/test</res-ref-name>一样即可),
其他的参数按照自己的实际情况进行修改,例如数据库的名称、账号、密码。第三步:
在myjdbc目录下创建WEB-INF目录,创建web.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/test</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> 说明: <resource-ref> <descrtiption>引用资源说明</descrtiption> <res-ref-name>引用资源的JNDI名</res-ref-name> <res-type>引用资源的类名</res-type> <res-auth>管理者(Container)</res-auth><!--Container-容器管理 Application-Web应用管理--> </resource-ref>
第四步:
写个jsp,试一下吧!
<%@ page contentType="text/html;charset=utf-8"%> <%@ page import="java.sql.*,javax.sql.*,javax.naming.*,com.DBConnection" %> <% try { //初始化查找命名空间 Context ctx = new InitialContext(); //InitialContext ctx = new InitialContext();亦可 //找到DataSource,对名称进行定位java:comp/env是必须加的,后面跟你的DataSource名 DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/test"); //取出连接 Connection conn = ds.getConnection(); System.out.println("connection pool connected !!"); } catch (NamingException e) { System.out.println(e.getMessage()); } catch (SQLException e) { e.printStackTrace(); }finally { //注意不是关闭,是放回连接池. conn.close(); } } %>
或写个JSP用标签库测试一下:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <%@ 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="jdbc/test"> select * from authors </sql:query> <html> <head> <title>DB Test</title> </head> <body> <c:forEach var="row" items="${rs.rows}"> ${row.city}<br/> </c:forEach> </body> </html>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jokefun968/archive/2010/09/26/5906393.aspx