Tomcat 连接池 数据源配置

来源:互联网 发布:侠客风云传 mac 编辑:程序博客网 时间:2024/05/17 02:14
修改/etc/tomcat6/context.xml,添加一下代码
<Context >     <WatchedResource>WEB-INF/web.xml</WatchedResource>     <Resource name="yourName" auth="Container" type="javax.sql.DataSource"      maxActive="value" maxIdle="value" maxWait="value" username="userName" password="yourPassword" driverClassName="com.mysql.jdbc.Driver"      url="jdbc:mysql://localhost/dataBaseName"/></Context>



记得把mysql驱动拷贝到tomcat6的lib目录(我用的是mysql-connector-java-5.1.6-bin.jar

java代码得到连接:
<%@page contentType="text/html;charset=utf-8"%><%@page pageEncoding="utf-8"%><%@page import="java.sql.*,javax.sql.*,java.io.*,javax.naming.*"%><html><head><title>基于连接池和数据源访问数据库</title></head><body><%InitialContext context = new InitialContext();DataSource dataSource = (DataSource)context.lookup("java:comp/env/mysql");Connection conn = null;Statement stmt = null;ResultSet rs = null;try {conn = dataSource.getConnection();stmt = conn.createStatement();rs = stmt.executeQuery("select * from users;");while (rs.next()) {out.print(rs.getInt("id"));out.print(rs.getString("username"));out.print("<br/>");}} catch (SQLException e) {out.println(e.toString());} catch (Exception e) {out.println(e.toString());} finally {if (rs != null) rs.close();if (stmt != null) stmt.close();if (conn != null) conn.close();if (context != null) context.close();}%></body>


另:Context元素代表一个web应用,运行在某个特定的虚拟主机上。你可以在一个Host元素中嵌套任意多的Context元素。每个Context的路径必须是惟一的,由path属性定义。

若针对某个WEB应用配置数据源,可在server.xml文件中的<Host></Host>标签之间加入如下的Context代码:
<Context path="/path" docBase="systemPath" reloadable="true">
    <Resource
        name="jdbc/mysql"
        auth="Container"
        type="javax.sql.DataSource"
        maxActive="100"
        maxIdle="30"
        maxWait="10000"
        username="root"
        password="root"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/dataBaseName"/>
</Context>