Mysql开发--DBCP数据库连接池

为什么要使用数据库连接池

如果一个网站的访问量比较大,数据库服务器就需要为每一次的链接创建一次数据库链接,而链接是非常消耗时间的,并且非常容易造成服务起内存出现溢出,宕机等状况。数据库连接池正式针对这个问题提出来的.数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个

  • 实验用代码如下
package com.atswu.jdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.commons.dbcp.BasicDataSource;

import com.mysql.jdbc.Statement;


public class ljcjdbc {

    public static BasicDataSource ds = null;

    public static String DRIVER_NAME = "com.mysql.jdbc.Driver";
    public static String DB_URL = "jdbc:mysql://localhost:3306/mysql";
    public static final String USER_NAME = "root";
    public static String PASSWORD = "";

    public static void dbpoolInit(){

        ds = new BasicDataSource();
        ds.setUrl(DB_URL);
        ds.setDriverClassName(DRIVER_NAME);
        ds.setUsername(USER_NAME);
        ds.setPassword(PASSWORD);
    }

    public static void dbpoolTest() throws SQLException{
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try {
            conn = ds.getConnection();
            stmt = (Statement) conn.createStatement();
            rs = stmt.executeQuery("select * from user");
            while(rs.next()){
                System.out.println(rs.getString("User"));
            }

        } catch (SQLException e) {
            e.printStackTrace();
            // TODO: handle exception
        }finally{
            if(conn!=null){
                conn.close();
            }
            if(stmt!=null){
                stmt.close();
            }
            if(rs!=null){
                rs.close();
            }
        }
    }
    public static void main(String[] args) throws SQLException {
        dbpoolInit();
        dbpoolTest();
    }

}
  • 实验细节说明:
    1.使用DBCP需要依赖使用dbcp的jar包,下载:http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
    2.实现DBCP的步骤:初始化DBCP连接池,通过BasicDataSource方法进行创建,调用的时候方法和jdbc方法一致
    3.建立一个数据库连接池pool, 池中有若干个Connection 对象, 当用户发来请求需要进行数据库交互时则会使用池中第一个Connection对象.
    4.当本次连接结束时, 再将这个Connection对象归还池中, 这样就可以保证池中一直有足够的Connection对象.

DBCP使用步骤

第一步:
这里写图片描述
第二步:
这里写图片描述
第三步:
这里写图片描述

使用DBCP数据库连接池遇到的问题:

  • dbcp的jar包要个jdk版本吻合,不然在编译运行过程中会抛出异常。dbcp的版本要根据jdk版本确定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值