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


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


目录
相关文章
|
开发者 异构计算
现在,一行命令使用Ollama运行任意魔搭GGUF模型
为了让开发者更方便地把这些模型用起来,社区最近支持了Ollama框架和ModelScope平台的链接,通过简单的 ollama run命令,就能直接加载运行ModelScope模型库上的GGUF模型。
集成运算放大器的非线性应用(模电速成)
集成运算放大器的非线性应用(模电速成)
361 0
|
小程序
微信小程序-slot插槽
微信小程序可有意思了
472 0
|
Cloud Native Java Linux
【云原生 | 14】Dockerfile构建镜像实战
Dockerfile提供了一个普通、简单和通用的语言来配置Docker镜像。使用 Dockerfile,用户可以使用任何偏好的方式来达到所期望的最终状态。用户可以调用Puppet,可以从其他脚本里复制,甚至可以从一个完整的文件系统复制!..................
669 0
【云原生 | 14】Dockerfile构建镜像实战
铁路机务系统职工教育培训工作中存在的问题
铁路机务系统是我国铁路企业的重要组成部分,承担着我国运输行业的重要任务。员工培训是提升铁路机务系统职工教育效果的重要手段。只有提高了机务系统职工的整体水平,才能确保服务质量。为此,论文分析了铁路机务系统职工教育培训工作中存在的问题,并有重点地分析了提升铁路机务系统职工教育培训的有效对策。
人工智能 缓存 前端开发
12333 68
人工智能 自然语言处理 安全
1220 0
Web App开发 人工智能 API
1501 1
人工智能 JavaScript 开发工具
4869 17