配置连接池(JDNI方式)

来源:互联网 发布:国内熟女网络视频 编辑:程序博客网 时间:2024/06/06 03:47

第一步:加载数据库驱动

将所需要的mysql驱动包(mysql-connector-java-5.1.26-bin.jar)放到Tomcat主目录下的lib文件夹中。
这里写图片描述


第二步:修改context.xml

修改context.xml应该首先将eclipse中的项目从服务器上移除
这里写图片描述
然后修改eclipse中的context.xml文件
这里写图片描述
添加如下内容:

 <Resource name="jdbc/数据库名称"        auth="Container" type="javax.sql.DataSource"        maxActive="100" maxIdle="30" maxWait="10000"        username="数据库连接用户名" password="数据库连接用密码"        driverClassName="com.mysql.jdbc.Driver"        url="jdbc:mysql://localhost:3306/数据库名?useUnicode=true&amp;characterEncoding=utf-8"/>

第三步:修改web.xml

<display-name>节点下添加如下内容:

<resource-ref>        <res-ref-name>jdbc/数据库名</res-ref-name>        <res-type>javax.sql.DataSource</res-type>        <res-auth>Container</res-auth>    </resource-ref>

第四步:重启服务器


第五步:编写数据库连接工具类

import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.sql.DataSource;public class DBHelper {    /**     * 数据库连接     * @return     */    public Connection getConnection() {        Connection conn = null;        Context ctx = null;        try {            ctx = new InitialContext();            String JDNIName="jdbc//test";//comtext.xml的name属性值            String JDNIString = "java:comp//env//"+JDNIName;            DataSource ds = (DataSource) ctx.lookup(JDNIString);            conn = ds.getConnection();        } catch (NamingException e) {            e.printStackTrace();        } catch (SQLException e) {            e.printStackTrace();        }        if (conn == null) {            System.err.println("无法建立数据库连接");        }        return conn;    }    /**     * 关闭连接     * @param conn     * @param stmt     * @param rs     */    public void closeAll(Connection conn, Statement stmt, ResultSet rs) {        if (rs != null) {            try {                rs.close();            } catch (Exception e) {                e.printStackTrace();            }        }        if (stmt != null) {            try {                stmt.close();            } catch (Exception e) {                System.out.println(e.toString());                e.printStackTrace();            }        }        if (conn != null) {            try {                conn.close();            } catch (Exception e) {                System.out.println(e.toString());                e.printStackTrace();            }        }    }    public void closeAll(Connection conn, Statement stmt) {        closeAll(conn, stmt, null);    }}
原创粉丝点击