Druid(德鲁伊)数据库连接池的使用

本文介绍了数据库连接池的重要性,列举了常见的数据库连接池如Druid,并详细阐述了如何配置和使用DruidDataSource。通过ResourceBundle读取配置文件,实现数据库连接的动态获取和管理,提高应用性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

有哪些数据库连接池?

在这里插入图片描述

怎么使用德鲁伊?

(第三方jar)

 不过现在流行maven,不建议使用古老方式。

(properties文件)

xx.properties文件是用于收集数据库信息如:驱动地址、数据库 连接地址、数据库账号、数据库密码等等一些配置信息。

!注意 xx.properties文件是在src目录下。

driver = com.mysql.jdbc.Driver
url = jdbc:mysql:///db_music
acc = root
pass = root

DruidDataSource

         DruidDataSource 是阿里写出来的一个数据源, 它不仅可以获取数据库连接,还把这些数据库连接管理了起来,也就是所谓的数据库连接池。这样的话,当通过该数据源获取数据库连接的时候,如果数据库连接池里有可以使用的连接,那么就直接返回该连接,就省的每次获取数据库连接都要创建了。

ResourceBundle

        这个类主要用来解决国际化和本地化问题。国际化和本地化可不是两个概念,两者都是一起出现的。可以说,国际化的目的就是为了实现本地化。比如对于“取消”,中文中我们使用“取消”来表示,而英文中我们使用“cancel”。若我们的程序是面向国际的(这也是软件发展的一个趋势),那么使用的人群必然是多语言环境的,实现国际化就非常有必要。而ResourceBundle可以帮助我们轻松完成这个任务:当程序需要一个特定于语言环境的资源时(如 String),程序可以从适合当前用户语言环境的资源包(大多数情况下也就是.properties文件)中加载它。这样可以编写很大程度上独立于用户语言环境的程序代码,它将资源包中大部分(即便不是全部)特定于语言环境的信息隔离开来。说白了ResourceBundle.getBundle()就是获取文件数据的高级读取器。

utils Package

/**
 * @author 王永辉
 * @version v1.1.0
 * @description
 * @date 2022-06−06-06−28
 **/
public class JDBCUtils {
        private static Connection conn;
        private static String driverName;
        private static String dbUrl;
        private static String acc;
        private static String pass;
        //德鲁伊
        private static DruidDataSource dds = new DruidDataSource();
        /*
         *@Author 玄烨
         * @Method 此方法用于静态代码块
         * @Date 8:30
         */
        static {
            //德鲁伊
            //读取数据库配置资源
            ResourceBundle bundle = ResourceBundle.getBundle("db_music");
            String driverName = bundle.getString("driver");
            String dbUrl = bundle.getString("url");
            String acc = bundle.getString("acc");
            String pass = bundle.getString("pass");
            //设置Connection连接信息
            dds.setDriverClassName(driverName);
            dds.setUrl(dbUrl);
            dds.setUsername(acc);
            dds.setPassword(pass);
        }
        /*
         *@Author 玄烨
         * @Method 此方法用于获取连接
         * @Date 8:30
         */
    public static Connection getConn() {
        try {
            //连接
            conn = dds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
    /*
     *@Author 玄烨
     * @Method 此方法用于关闭资源
     * @Date 11:43
     */
    public static void closeAll(ResultSet rs,PreparedStatement ps,Connection conn) {
        try {
            if(rs!=null) {
                rs.close();
            }
            if(ps!=null) {
                ps.close();
            }
            if(conn!=null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

效果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值