首页 > 数据库 >实现数据库连接池druid的工具类

实现数据库连接池druid的工具类

时间:2023-09-10 16:32:54浏览次数:31  
标签:java 数据库 druid util 连接池 import null throws conn


一、数据库连接迟druid工具类

import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.apache.commons.beanutils.PropertyUtils;

import javax.sql.DataSource;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

public class JdbcUtils {

    /**
     * 获取连接
     * @return
     * @throws IOException
     * @throws ClassNotFoundException
     * @throws SQLException
     */
    private static DataSource ds = null;

    static {
        try {
            Properties props = new Properties();
            props.load(JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
            ds = DruidDataSourceFactory.createDataSource(props);
        } catch (Exception e) {
                throw new RuntimeException("读取配置文件异常", e);
        }
    }
    
    //Druid连接池
    public static Connection getDruidConnection() throws Exception {
        Connection conn = null;
        conn = ds.getConnection();
        return conn;
    }


    public static void release(Connection conn) throws SQLException {
        if(conn != null)
            conn.close();
    }


    public static void release(Connection conn, PreparedStatement ps) throws SQLException {
        if(ps!=null)
            ps.close();
        if(conn!=null)
            conn.close();
    }

    public static void release(Connection conn, PreparedStatement ps, java.sql.ResultSet rs) throws SQLException {
        if(rs!=null) rs.close();
        if(ps!=null) ps.close();
        if(conn!=null) conn.close();
    }
}

二、数据库连接池druid工具类的测试类

import com.bigdata.plus.Entity.DatabaseInfo;
import org.junit.Test;

import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

/*
    使用PrepareStatement完成增删改
*/
public class PrepareStatementTest {

    @Test
    public void test9() throws Exception {


        Connection connection = JdbcUtils.getDruidConnection();
        DatabaseMetaData metaData = connection.getMetaData();

        System.out.println(metaData.getDatabaseProductName());
        System.out.println(metaData.getDatabaseMajorVersion());

        ResultSet catalogs = metaData.getCatalogs();
        while(catalogs.next()){
            String str = catalogs.getString(1);
            System.out.println(str);
        }

        JdbcUtils.release(connection,null,catalogs);
    }
}

测试成功输出如下所示:
MySQL
5
datafish_test
dw
information_schema
inventory
mysql
optics
performance_schema
sys


标签:java,数据库,druid,util,连接池,import,null,throws,conn
From: https://blog.51cto.com/u_12080573/7426648

相关文章

  • postgresql数据库安装日志解析插件wal2json
    postgresql数据库安装日志解析插件wal2json一、编译安装wal2json插件cdwal2jsonexportPATH=/data/home/fei.yang4/moudle/postgresql/bin:$PATHmakemakeinstall二、直接导入wal2json插件查看pg进程确定pgsql库和配置文件存放目录ps-ef|greppostgresqlubuntu24975248......
  • 数据库基本操作
    mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。但是utf8的超集utf8mb4一个字符最多能有4字节,所以能支持emoji表情的存储<1>修改标的字符集编码ALTERtableuserinfoconverttocharactersetutf8mb4;<2>更改数据库连接的......
  • 关于IDEA里面连接数据库找不到org.apache.hive.jdbc.Driver的问题
    问题描述昨天就很顺利地连接上了,今天直接找不到我的class了,吓出一身冷汗;问题解决后来发现导入的jar包的路径不太对,突然想起来jar包的位置被我移动了,但是IDEA里面并没有改变原来的位置,找不到jar包的问题,重新将jar包的路径浏览一遍即可解决;......
  • 连接MongoDB数据库
    @[TOC]转载自远程内网穿透的文章:公网远程连接MongoDB数据库【内网穿透】前言MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像......
  • Springboot项目中pom.xml配置文件无法解析下载oracl数据库解决办法(Cannot resolve com
    网上说是因Oracle的版权问题,导致maven下载不下来ojdbc各个版本的jar包。就会报错Cannotresolvecom.oracle:ojdbc6:11.2.0.1.0 经过一番百度,找到了一个适用的解决方法,如下操作即可:1.在终端或客户端机器上找到oracle安装驱动目录:例如:E:\myorcl\product\11.2.0\dbhome_1\j......
  • 达梦数据库教程:DM8查看试用版证书到期时间SQL
    达梦数据库试用期限为一年,不是以本地安装时间算起的,是安装包已经把开始时间和截止时间内置好了,官网定期更新安装包版本。如果想看你安装的达梦啥时候到期,执行以下语句即可select*fromv$license;查询出记录后,看EXPIRED_DATE这个字段就是截止日期了。一定要在截止前把数据库迁移或......
  • 达梦数据库教程:DM8临时表的使用
    一、什么是临时表临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别。它只能存储在临时表空间,而非用户的表空间。临时表是会话或事务级别的,只对当前会话或事务可见。每个会话只能查看和修改自己的数据。临时表的分类:事务......
  • 达梦数据库教程:DM8性能诊断(内存、CPU、磁盘、网络、AWR日志和接口日志诊断)
    性能诊断一、前言1.1概念性能诊断用于了解操作系统以及数据库的各项性能指标是否达到要求,以满足系统正常运行需要。通过性能诊断,可以更好地了解系统资源的使用情况、以及数据库的状态,提前避免由于性能不足引发的各种问题。性能诊断在数据库运维中具有极大的实用价值。性能诊断包括......
  • 达梦数据库教程:docker安装DM8数据库
    安装前准备软硬件版本终端X86-64架构Docker2023年6月版下载Docker安装包请在达梦数据库官网下载Docker安装包。导入安装包拷贝安装包到/opt目录下,执行以下命令导入安装包:dockerload-idm8_20230808_rev197096_x86_rh6_64_single.tar结果显示如下:导入完成后,可以使用doc......
  • 达梦数据库教程:DM8数据迁移工具使用教程(oracle迁移至DM8)
    DM数据迁移工具DM数据迁移工具DMDTS提供了主流大型数据库迁移到DM、DM到DM、文件迁移到DM以及DM迁移到文件等功能。得益于DM数据库对目前主流大型关系型数据库系统有着业界领先的兼容性,在存储层面、语法层面、接口层面和它们保持高度兼容,借助于DM图形界面且采用向......