连接池(详解)

连接池的概念
为应用程序创建固定数量的连接对象,保存在池中进行复用。每次访问时从池中获取已存在,使用完之后,返回池中。
连接池采用了预先建立多个数据库连接对象,然后放到连接池里面去,当客户端请求得时候,取出来一个连接对象为客户端服务,当请求完成可以用.close()将连接对象放回到连接池中去。普通端的到的是物理连接,而在连接池中客户端的得到的是连接对象,一直存在的,大大减少了我们的时间。

例如
引包:

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

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSource;

public class DBUtil {

private final static String DB_USERNAME = “root”;
private final static String DB_PASSWD = “root”;
private final static String DB_DRIVER = “com.mysql.jdbc.Driver”;
private final static String DB_URL = “jdbc:mysql://localhost:3306/test”;

private static DruidDataSource dds = null;

static {
dds = new DruidDataSource();
dds.setUsername(DB_USERNAME);
dds.setPassword(DB_PASSWD);
dds.setUrl(DB_URL);
dds.setDriverClassName(DB_DRIVER);
// dds.setInitialSize(5);//表示当连接池初始化后,在池中最少的链接数
// dds.setMaxActive(20);//表示池中最大连接数
}
public static Connection getDBConn() {
try {
return dds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static DataSource getDS() {
return dds;
}

public static void close(Connection conn) {
try {
if(conn != null) {
conn.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
}

public static void close(Statement stat) {
try {
if(stat != null) {
stat.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
}

public static void close(ResultSet rs) {
try {
if(rs != null) {
rs.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
}

public static void close(Connection conn, Statement stat, ResultSet rs) {
close(rs);
close(stat);
close(conn);
}

public static void close(Connection conn, Statement stat) {
close(stat);
close(conn);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值