zoukankan      html  css  js  c++  java
  • JDBC数据源连接池(3)---Tomcat集成DBCP

    此文续《JDBC数据源连接池(2)---C3P0》

    Apache Tomcat作为一款JavaWeb服务器,内置了DBCP数据源连接池。在使用中,只要进行相应配置即可。

    首先,确保Web项目的WebContent--->WEB-INF--->lib文件夹中有mysql数据库驱动jar包。

    其次,配置数据源的xml文件。如果配置信息写在tomcat--->con--->context.xml中,那么所有应用都能使用此数据源;如果是在当前应用的WebContent--->META-INF中创建context.xml,并编写数据源,那么只有当前应用可以使用。本文选择了后一种方式,context.xml配置信息如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
    <Resource name="jdbc/mydsp" auth="Container" type="javax.sql.DataSource"
    maxActive="10" maxIdle="10" maxWait="10000"
    username="root" password="2017" driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/itszt2"  />
    </Context>
    

    再次,编写Util_4_JDBC_DBCP_TOMCAT数据源连接池工具类,代码内容如下:

    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.sql.DataSource;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    /**
     * Tomcat内置的DBCP数据源连接池
     */
    public abstract class Util_4_JDBC_DBCP_TOMCAT {
        private static DataSource dataSource=null;
        static {
            try {
                Context context=new InitialContext();
                dataSource= (DataSource) context.lookup("java:comp/env/jdbc/mydsp");
            } catch (NamingException e) {
                e.printStackTrace();
            }
        }
        /**
         * 打开与数据库的连接
         * @return 一个连接对象
         */
        public static Connection openConnection(){
            try {
                return dataSource.getConnection();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return null;
        }
        //释放资源
        public static void release(Connection connection, Statement statement, ResultSet resultSet){
            if(connection!=null){
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }    
    }
    

    最后,在com.itszt.demo文件夹中的LoginServlet.java的Servlet文件中,将产生Connection对象的方式修改为Tomcat内置DBCP连接池方式即可。

  • 相关阅读:
    Drcom账户管理Server端解说
    Hadoop常见异常及其解决方式
    PHP 获取网络接口文件流
    【刷题小记67】三角形面积
    Tiny语言编译器简单介绍
    矩阵十题【六】 poj3070 Fibonacci
    函数名称
    设计模式--6大原则--开闭原则
    LeetCode96:Unique Binary Search Trees
    [Swift]LeetCode958. 二叉树的完全性检验 | Check Completeness of a Binary Tree
  • 原文地址:https://www.cnblogs.com/lizhangyong/p/8117430.html
Copyright © 2011-2022 走看看