druid连接池_工具类

简介: druid连接池_工具类

  Druid连接池

Druid是阿里巴巴开发的号称为监控而生的数据库连接池,Druid是目前最好的数据库连接池。
在功能、性能、扩展性方面,都超过其他数据库连接池,同时加入了日志监控,
可以很好的监控DB池连接和SQL的执行情况。
DRUID连接池使用的jar包: druid-1.0.31.jar

image.gif

Druid配置参数

druid.properties 文件内容:

#driverClassName这一项也可以不配置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/testtest
username=root
password=123456
#初始化建立连接个数
initialSize=5
#最大连接池数量
maxActive=10
#获取连接最大等待时间
maxWait=3000
#不在使用
maxIdle=6
#最小连接池数量
minIdle=3

image.gif

连接池工具类使用

创建数据表文件

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `gender` tinyint(255) DEFAULT NULL,
  `birthday` date DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

image.gif

工具类

package utilw;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidAbstractDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
/**
 * @author rodert
 * @category druid连接池工具类
 * */
public class DruidDataSourceUtils {
    private static DataSource ds;
    /** 加载配置文件 */
    static {
        try {
            Properties info = new Properties();
            // 加载类路径下,配置文件
            info.load(DruidDataSourceUtils.class
                    .getResourceAsStream("/druid.properties"));
            // 读取属性文件,创建连接池
            ds = DruidDataSourceFactory.createDataSource(info);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }
    public static DataSource getDataSource() {
        return ds;
    }
    public static Connection getConnection() {
        try {
            return (Connection) ds.getConnection();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            // e.printStackTrace();
            throw new RuntimeException(e);
        }
    }
    /** 释放连接资源 */
    public static void close(Connection connection, Statement statement,
            ResultSet resultSet) {
        if (resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    public static void close(Connection connection, Statement statement) {
        close(connection, statement, null);
    }
    //插入一条数据
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement statement = null;
        int row = 0;
        try {
            connection = DruidDataSourceUtils.getConnection();
            String sql = "insert into student values(null,?,?,?)";
            statement = connection.prepareStatement(sql);
            statement.setString(1, "张飞");
            statement.setInt(2, 1);
            statement.setString(3, "199-03-12");
            // 使用executeUpdate()写入数据库
            row = statement.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            DruidDataSourceUtils.close(connection, statement);
        }
        System.out.println("添加了:" + row);
    }
}

image.gif

结果展示

image.gif


image.gifimage.png

image.gif


更多工具类,关注文章后续分析


目录
相关文章
|
安全 小程序 物联网
WLAN基础 无线局域网配置方法 旁挂三层组网隧道转发方式配置
WLAN基础 无线局域网配置方法 旁挂三层组网隧道转发方式配置
2041 0
WLAN基础 无线局域网配置方法 旁挂三层组网隧道转发方式配置
|
存储 监控 NoSQL
一篇搞定Redis中的BigKey问题
BigKey的具体表现是redis中的key对应的value很大,占用的redis空间比较大,本质上是大value问题。
1740 0
|
移动开发 JSON 小程序
情人节福利,恋爱话术微信小程序它来了(开源,看了就懂~,2万字真香警告)
情人节福利,恋爱话术微信小程序它来了(开源,看了就懂~,2万字真香警告)
1359 0
情人节福利,恋爱话术微信小程序它来了(开源,看了就懂~,2万字真香警告)
|
人工智能 测试技术 API
Windows用户必备:Postman v11详细安装指南与API测试入门教程(附官网下载
Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试。2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能,适用于前后端分离开发、自动化测试、接口文档自动生成及团队协作共享API资源。本文详细介绍Postman的软件定位、核心功能、安装步骤、首次配置、基础使用及常见问题解答,帮助用户快速上手并高效利用该工具进行API开发与测试。
|
开发者 异构计算
现在,一行命令使用Ollama运行任意魔搭GGUF模型
为了让开发者更方便地把这些模型用起来,社区最近支持了Ollama框架和ModelScope平台的链接,通过简单的 ollama run命令,就能直接加载运行ModelScope模型库上的GGUF模型。
|
存储 算法 安全
分布式系统架构1:共识算法Paxos
本文介绍了分布式系统中实现数据一致性的重要算法——Paxos及其改进版Multi Paxos。Paxos算法由Leslie Lamport提出,旨在解决分布式环境下的共识问题,通过提案节点、决策节点和记录节点的协作,确保数据在多台机器间的一致性和可用性。Multi Paxos通过引入主节点选举机制,优化了基本Paxos的效率,减少了网络通信次数,提高了系统的性能和可靠性。文中还简要讨论了数据复制的安全性和一致性保障措施。
865 1
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下的文件数量是常见的需求。本文介绍了多种方法,包括使用 `ls` 和 `wc` 命令组合、`find` 命令、`tree` 命令以及编程方式(如 Python)。无论你是新手还是有经验的用户,都能找到适合自己的方法。掌握这些技巧将提高你在 Linux 系统中的操作效率。
569 4
|
算法 安全 Linux
江湖一代大佬-王垠
江湖一代大佬-王垠
855 0
|
消息中间件 Docker 容器
Docker安装ActiveMQ
Docker安装ActiveMQ步骤
8924 0
|
存储 SQL 算法
数据脱敏技术与应用
数据脱敏技术与应用
数据脱敏技术与应用

热门文章

最新文章