栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Druid连接池的使用讲解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Druid连接池的使用讲解

  • 什么是连接池以及作用?

Druid连接池是阿里巴巴开源的数据库连接池项目,后面贡献给Apache开源。Druid的作用是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。

SQL脚本环境:

CREATE TABLE tuser(
 id int(10) PRIMARY KEY AUTO_INCREMENT,
 name VARCHAr(30) NOT NULL,
 jobs VARCHAr(30) NOT NULL,
 phone VARCHAr(30) NOT NULL
);
INSERT INTO `tuser`(`name`,jobs,phone) VALUES('Sunny','IT','027-57998');

1.测试需要两个架包分别是Druid和MySQL的连接驱动,网上下载即可

2.建一个druid的配置文件

url=jdbc:mysql:///vdemo
driverClassName=com.mysql.cj.jdbc.Driver
username=root
password=123456

##初始连接数,默认0
initialSize=10
#最大连接数,默认8
maxActive=30
#最小闲置数
minIdle=10
#获取连接的最大等待时间,单位毫秒
maxWait=2000
#缓存PreparedStatement,默认false
poolPreparedStatements=true
#缓存PreparedStatement的最大数量,默认-1(不缓存)
#大于0时会自动开启缓存PreparedStatement,所以可以省略上一句设置
maxOpenPreparedStatements=20

3.写测试代码

import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

public class DruidExample {
    public static void main(String[] args) throws Exception {
        Properties properties=new Properties();
        //通过当前类的class对象获取资源文件
        InputStream is = DruidExample.class.getResourceAsStream("/druid.properties");
        properties.load(is);
        DataSource druidDataSource = DruidDataSourceFactory.createDataSource(properties);
        Connection connection = druidDataSource.getConnection();
        String SQL = "SELECt * FROM tuser WHERe id = ? ";
        PreparedStatement preparedStatement = connection.prepareStatement(SQL);
        preparedStatement.setInt(1,1);
        ResultSet resultSet = preparedStatement.executeQuery();
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            String job = resultSet.getString("jobs");
            String phone = resultSet.getString("phone");
            System.out.println("用户Id为:"+id);
            System.out.println("用户姓名为:"+name);
            System.out.println("用户工作为:"+job);
            System.out.println("用户电话为:"+phone);
            }
    }
}

测试查询结果:

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号