基于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 ...
随机推荐
- BeyondCorps
This repository provides a short description of the BeyondCorp security model and resources for impl ...
- USACO Milk Routing
洛谷 P3063 [USACO12DEC]牛奶的路由Milk Routing 洛谷传送门 JDOJ 2334: USACO 2012 Dec Silver 3.Milk Routing JDOJ传送门 ...
- tomcat相关知识点
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用. tomcat的文件结构: bin:用于存放启动和关闭tom ...
- Shell基础、输入输出重定向
1.Shell的功能: (1)Shell是命令解释器,把我们写的命令转化为内核能够识别的机器语言,然后内核调用硬件来完成相应的操作.操作完成后,内核操作结果返回给内核,Shell再将机器语言翻译为我们 ...
- 3-OpenResty 配置PHP
由于咱以前是用PHP做的东西,又不想重新用 OpenResty自带的编写,所以呢咱设置下,可以像以前Apache那样访问PHP文件 首先去下载 PHP https://windows.php.net/ ...
- Python模块 --- 最高级别程序组织单元
模块 --- 最高级别程序组织单元 <Python学习手册>笔记 import 导入1个模块 from 获取模块指定变量名 imp.reload 重新载入模块文件代码的方法 模块作用 代码 ...
- Android Studio 星云常用配置工具箱
1. 安装插件 1.1 Android View绑定框架 开源地址:https://github.com/JakeWharton/butterknife 插件地址: https://github.co ...
- 关于Exgcd
%%lkx 学习博客 exgcd(扩展欧几里得) 可以用来判断并求解形如\(ax+by=c\)的方程,当且仅当\(gcd(a,b)|c\)时,存在整数解\(x,y\) 也就是说,\(exgcd\)可以 ...
- spark基础知识一
1. spark是什么 Apache Spark™ is a unified analytics engine for large-scale data processing. spark是针对于大规 ...
- K8s预选策略和优选函数简介
调度器选择策略: 预选策略(Predicate) 1. 根据运行Pod的资源限制来排除不符合要求的Node 2. 根据运行Pod时,是否要求共享宿主机的网络名称空间来判断,如: 某Pod启动要共享宿主 ...