基于Druid数据库连接池的DBUtil工具类
工具类 DruidUtil.java
package com.zzuli.util; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource;
import java.io.IOException;
import java.sql.*;
import java.util.Properties; /**
* Created by hejjon on 2019/6/19 23:10.
* <p>
* 基于Druid数据库连接池的工具类
*/
public class DruidUtil {
// 私有成员 DataSource
private static DataSource ds; static {
try {
// 加载配置文件
Properties pro = new Properties();
pro.load(DruidUtil.class.getClassLoader().getResourceAsStream("druid.properties"));
// 获取DataSource对象
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 获取连接
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return ds.getConnection();
} /**
* 获取数据库连接池对象
* @return
*/
public static DataSource getDataSource() {
return ds;
} /**
* 释放数据库资源
* @param rs
* @param sta
* @param conn
*/
public static void close(ResultSet rs, Statement sta, Connection conn) {
if (null != rs) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
} if (null != sta) {
try {
sta.close();
} catch (SQLException e) {
e.printStackTrace();
}
} if (null != conn) {
try {
conn.close(); // 归还数据库连接对象
} catch (SQLException e) {
e.printStackTrace();
}
}
} /**
* 释放数据库连接资源
* @param sta
* @param conn
*/
public static void close(Statement sta, Connection conn) {
close(null, sta, conn);
} }
配置文件druid.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/zzuli
username=root
password=123123
# 初始化连接数量
initialSize=5
# 最大连接数量
maxActive=10
# 最大等待时间
maxWait=3000
测试类DruidDemo2.java
package com.zzuli.testDruid; import com.zzuli.util.DruidUtil; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException; /**
* Created by hejjon on 2019/6/19 23:25.
* <p>
* 测试工具类DruidUtil
*/
public class DruidDemo2 { public static void main(String[] args) {
Connection conn = null;
PreparedStatement pre = null; // 定义sql语句
String sql = "insert into t_salary values (null,?,?)";
try {
// 获取连接
conn = DruidUtil.getConnection();
// 创建PreparedStatement对象
pre = conn.prepareStatement(sql);
// 设置?的值
pre.setString(1, "王五");
pre.setInt(2, 4000); // 执行sql
int count = pre.executeUpdate(); if (count >= 1) {
System.out.println("记录添加成功");
} } catch (SQLException e) {
e.printStackTrace();
} } }
数据库查询结果

基于Druid数据库连接池的DBUtil工具类的更多相关文章
- 数据库连接池与SQL工具类
数据库连接池与SQL工具类 1.数据库连接池 依赖包 pymysql dbutils # -*- coding: utf-8 -*- ''' @Time : 2021/11/19 16:45 @Aut ...
- Spring Boot [使用 Druid 数据库连接池]
导读 最近一段时间比较忙,以至于很久没有更新Spring Boot系列文章,恰好最近用到Druid, 就将Spring Boot 使用 Druid作为数据源做一个简单的介绍. Druid介绍: Dru ...
- Druid 数据库连接池
druid 数据库连接池 由阿里提供 步骤 1 导包 durid1.0.9 jar 包 2 定义配置文件 必须是 properties文件 名字任意 位置也任意 3 获得数据库连接池对象 通过 Dur ...
- Druid数据库连接池源码分析
上一篇文章重点介绍了一下Java的Future模式,最后意淫了一个数据库连接池的场景.本想通过Future模式来防止,当多个线程同时获取数据库连接时各自都生成一个,造成资源浪费.但是忽略了一个根本的功 ...
- Druid数据库连接池就这么简单
前言 本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并不够用阿~当时学习C3P0的时候,觉得这 ...
- 基于AQS实现的Java并发工具类
本文主要介绍一下基于AQS实现的Java并发工具类的作用,然后简单谈一下该工具类的实现原理.其实都是AQS的相关知识,只不过在AQS上包装了一下而已.本文也是基于您在有AQS的相关知识基础上,进行讲解 ...
- 【spring boot】15.spring boot项目 采用Druid数据库连接池,并启用druid监控功能
在http://www.cnblogs.com/sxdcgaq8080/p/9039442.html的基础上,来看看spring boot项目中采用Druid连接池. GitHub地址:示例代码 == ...
- Spring Boot集成Druid数据库连接池
1. 前言 Druid数据库连接池由阿里巴巴开源,号称是java语言中最好的数据库连接池,是为监控而生的.Druid的官方地址是:https://github.com/alibaba/druid 通过 ...
- 数据库连接池,DBUtil的模板,dbcp,c3p0
数据库连接池,DBUtil的模板,Druid使用(重点) 一.DBUtil模板 public class DBUtilTest { public static Connection connectio ...
随机推荐
- 性能测试基础---jmeter参数化、关联、事物、检查的等
·Jmeter脚本增强·性能测试的脚本增强技术:参数化.关联.事务.检查点.思考时间和集合点. ·参数化:在Jmeter中,实现参数化的方式很多.本质上来说,参数化的实现方式有两种:·文件方式:一般建 ...
- cordova 一个将web应用程序封装成app的框架
cordova的详细介绍请参考这个链接:http://www.zhoujingen.cn/blog/7034.html 我接下来主要将如何搭建. 1.首先你需要下载几样东西 1.jdk. 2.andr ...
- contact form 7如何搭配Akismet过滤垃圾邮件
contact form 7有很多站长在用,但是经常会有一些垃圾邮件进来,如何过滤呢?两个方法:1.表单提交启用验证码功能,很多垃圾邮件是用软件扫相应的端口,然后批量群发,如果用验证码了可以过滤很大一 ...
- socket套接字及粘包问题
socket套接字 1.什么是socket socket是一个模块,又称套接字,用来封装互联网协议(应用层以下的层) 2.为什么要有socket 实现应用层以下的层的工作,提高开发效率 3.怎么使用s ...
- Game Publisher
“Amazon Appstore https://developer.amazon.com/why-amazonApple Store https://developer.apple.com/prog ...
- python将数组写入文件
import numpy as npdata = np.array([[1,2], [3,4]]) np.savetxt('out.txt', data, fmt="%d") #保 ...
- 第二阶段冲刺(个人)——five
今天的计划:优化登录.注册信息的填写判断. 昨天做了什么?做背景. 困难:无
- vue-cli3和ts建立vue项目
第一步,如果你之前没有装vuecli,可以直接执行下面命令 npm install --global @vue/cli 注:这里我install 的时候不成,于是我用的是 cnpm install - ...
- java http get和post请求
1.http工具类 package com.funshion.common.utils; import java.net.URI;import java.net.URL; import org.apa ...
- Educational Codeforces Round 78 (Rated for Div. 2) C - Berry Jam(前缀和)