数据库连接池

1.数据库连接池:

  *概念:其实就是一个容器(集合),存放数据库连接的容器

      当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。

  *好处:

    1.节约资源

    2.用户访问高效

   *实现:

    1.标准接口:DataSource   (javax.sql 包下的)

      1.方法:

        *获取链接:getConnection()

        *归还链接:如果链接对象Connection是从连接池中获取的,那么调用Connection.close(),则不会关闭连接,而是归还链接。

     2.一般我们不去实现它,有数据库厂商来实现

        1.C3p0:数据库连接池技术(这个没用过,用的都是下面那个)

          

        2.Druid:数据库连接池实现技术,由阿里巴巴提供的

            *步骤

              1.导入jar包(jar包的下载地址https://repo1.maven.org/maven2/com/alibaba/druid/

              2.配置文件druid.properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库名
username=root
password=密码
#初始化连接数量
initialSize=5
#最大链接数
maxActive=10
#最大等待时间
maxWait=3000

            3.获取数据库连接池对象:通过工厂来获取 DruidDataSourceFactory

            4.获取链接:getConnection

import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Date;
import java.util.Properties;
public class Druid {
public static void main(String[] args) throws Exception {
//加载配置文件
Properties properties = new Properties();
InputStream is = Druid.class.getClassLoader().getResourceAsStream("druid.properties");
properties.load(is);
//获取连接池对象
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
//获取链接
Connection coon = dataSource.getConnection();
System.out.println(coon);
}
}

         *定义一个工具类:

             1.定义一个类 JDBCUtils

             2.提供静态代码块加载文件,初始化链接池对象

             3.提供方法:

                  1.获取链接方式:通过数据库连接池获取链接

                  2.释放资源

                  3.获取链接池的方法:

package Utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JDBCUtils {
//定义一个成员变量 DataSource
private static DataSource ds;
static {
try {
Properties properties =new Properties();
properties.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
ds = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
public static void close(Statement statement,Connection connection) throws SQLException {
statement.close();
connection.close();
}
public static void close(ResultSet resultSet, Statement statement, Connection connection) throws SQLException {
statement.close();
connection.close();
resultSet.close();
}
public static DataSource getDataSource() {
return ds;
}
}

 

posted @   会秃头的小白  阅读(216)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
  1. 1 原来你也在这里 周笔畅
  2. 2 世间美好与你环环相扣 柏松
  3. 3 起风了 吴青峰
  4. 4 极恶都市 夏日入侵企划
原来你也在这里 - 周笔畅
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 姚谦

作曲 : 中島みゆき

编曲 : Terence Teo

制作人 : 朱敬然

请允许我尘埃落定

请允许我尘埃落定

用沉默埋葬了过去

满身风雨我从海上来

才隐居在这沙漠里

该隐瞒的事总清晰

千言万语只能无语

爱是天时地利的迷信

喔 原来你也在这里

啊 那一个人

是不是只存在梦境里

为什么我用尽全身力气

却换来半生回忆

若不是你渴望眼睛

若不是我救赎心情

在千山万水人海相遇

喔 原来你也在这里

请允许我尘埃落定

请允许我尘埃落定

用沉默埋葬了过去

满身风雨我从海上来

才隐居在这沙漠里

该隐瞒的事总清晰

千言万语只能无语

爱是天时地利的迷信

喔 原来你也在这里

啊 那一个人

是不是只存在梦境里

为什么我用尽全身力气

却换来半生回忆

若不是你渴望眼睛

若不是我救赎心情

在千山万水人海相遇

喔 原来你也在这里

啊 那一个人

啊 那一个人

是不是只存在梦境里

为什么我用尽全身力气

却换来半生回忆

若不是你渴望眼睛

若不是我救赎心情

在千山万水人海相遇

喔 原来你也在这里

该隐瞒的事总清晰

千言万语只能无语

爱是天时地利的迷信

喔 原来你也在这里

OT: AISARERU HANA AISAREXIU HANA

OT: AISARERU HANA AISAREXIU HANA

(中文版:原来你也在这里)

OP: Yamaha Music Publishing Inc

SP:百代音乐版权代理(北京)有限公司

配唱制作人:翁乙仁

点击右上角即可分享
微信分享提示