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


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


目录
相关文章
|
人工智能 测试技术 API
Windows用户必备:Postman v11详细安装指南与API测试入门教程(附官网下载
Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试。2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能,适用于前后端分离开发、自动化测试、接口文档自动生成及团队协作共享API资源。本文详细介绍Postman的软件定位、核心功能、安装步骤、首次配置、基础使用及常见问题解答,帮助用户快速上手并高效利用该工具进行API开发与测试。
|
开发者 异构计算
现在,一行命令使用Ollama运行任意魔搭GGUF模型
为了让开发者更方便地把这些模型用起来,社区最近支持了Ollama框架和ModelScope平台的链接,通过简单的 ollama run命令,就能直接加载运行ModelScope模型库上的GGUF模型。
集成运算放大器的非线性应用(模电速成)
集成运算放大器的非线性应用(模电速成)
328 0
|
小程序
微信小程序-slot插槽
微信小程序可有意思了
447 0
|
Cloud Native Java Linux
【云原生 | 14】Dockerfile构建镜像实战
Dockerfile提供了一个普通、简单和通用的语言来配置Docker镜像。使用 Dockerfile,用户可以使用任何偏好的方式来达到所期望的最终状态。用户可以调用Puppet,可以从其他脚本里复制,甚至可以从一个完整的文件系统复制!..................
645 0
【云原生 | 14】Dockerfile构建镜像实战
铁路机务系统职工教育培训工作中存在的问题
铁路机务系统是我国铁路企业的重要组成部分,承担着我国运输行业的重要任务。员工培训是提升铁路机务系统职工教育效果的重要手段。只有提高了机务系统职工的整体水平,才能确保服务质量。为此,论文分析了铁路机务系统职工教育培训工作中存在的问题,并有重点地分析了提升铁路机务系统职工教育培训的有效对策。
|
3天前
|
人工智能 弹性计算 运维
|
1天前
|
缓存 人工智能 安全
GPT-5.6 Terra与GPT-5.5性能实测:成本减半后的跑分对比与快速迁移指南
GPT-5.6 Terra 的定价为每百万 token 输入 2.50/输出 15。GPT-5.5 则是 5/ 30。Terra 的每一项费率,包括 $0.25/M 的缓存读取,都恰好是 GPT-5.5 的一半,因此在任何工作负载组合下,Terra 都固定 便宜 2.0x。以每天 10 万次请求、3K token 提示词计算,大约是 Terra 每天 2,000,GPT−5.5每天 4,000,即每月约 60,000对 120,000。问题在于:OpenAI 没有发布任何针对 Terra 的编码基准。那个著名的 91.9% Terminal-Bench 数字是 Sol 在 Ul
|
25天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)