Java-连接池使用简介

连接池简介

连接池 是为了解决资源的频繁分配﹑释放所造成的问题而采用的技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量﹑使用情况,为系统开发﹑测试及性能调整提供依据。

连接池技术在项目中的使用

  1. 在WebContent\META-INF\目录下新建一个context.xml文件,如图:


context.xml



    

  1. 在util包中新建一个DBUtils_pool类


DBUtils_pool.java

package net.ptcs.my12306.util;

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.sql.DataSource;

/**
 * 启用连接池技术的DBUtil工具类
 * 
 * 步骤:
 * 1.在META-INF目录下创建配置文件context.xml
 * 2.编写DBUtils_pool工具类
 * 在里面定义getConnection方法
 * 
 * 3.这个方法定义完之后不可以马上写main方法测试,因为这个池子是基于Tomcat容器实现的,所以
 * 必须把web应用部署到Tomcat服务器上之后才可以测试
 * @author xianxian
 *
 */
public class DBUtils_pool {
    public static Connection getConnection()
    {
        Connection conn=null;
        try{
            //实例化Context对象,其实读取Context.xml文件中的资源
            Context context = new InitialContext();
            //使用lookup方法寻找数据源资源并且造型成DataSource
             DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/oracle/my12306");
             conn = ds.getConnection();
        }catch(Exception e)
        {
            e.printStackTrace();
        }
        return conn;
    }
    
    /**
     * 释放资源的方法
     * @param conn
     * @param stmt
     * @param rs
     */
    public static void release(Connection conn, Statement stmt, ResultSet rs) {
        try {
            if (rs != null) {
                rs.close();
            }
            if (stmt != null) {
                stmt.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
  1. 在dao层中使用连接池


参考链接

Java连接池详解

Java数据库连接池实现原理

Java数据库连接池的几种配置方法(以MySQL数据库为例)

Java jdbc数据库连接池总结!

主流Java数据库连接池比较及前瞻

几种常见数据库连接池的使用比较


分割线


博主为咯学编程:父母不同意学编程,现已断绝关系;恋人不同意学编程,现已分手;亲戚不同意学编程,现已断绝来往;老板不同意学编程,现已失业三十年。。。。。。如果此博文有帮到你欢迎打赏,金额不限。。。

你可能感兴趣的:(Java-连接池使用简介)