基于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 ...
随机推荐
- 用肘方法确定 kmeans 聚类中簇的最佳数量
说明: KMeans 聚类中的超参数是 K,需要我们指定.K 值一方面可以结合具体业务来确定,另一方面可以通过肘方法来估计.K 参数的最优解是以成本函数最小化为目标,成本函数为各个类畸变程度之和,每个 ...
- 富文本编辑器 KindEditor 的基本使用 文件上传 图片上传
富文本编辑器 KindEditor 富文本编辑器,Rich Text Editor , 简称 RTE , 它提供类似于 Microsoft Word 的编辑功能. 常用的富文本编辑器: KindEdi ...
- STM32片上Flash容量大小命名规则
- JDOJ 2157 Increasing
洛谷 P3902 递增 洛谷传送门 JDOJ 2157: Increasing JDOJ传送门 Description 数列A1,A2,--,AN,修改最少的数字,使得数列严格单调递增. Input ...
- 在eclipse中打jar包
在Eclipse中打jar包 步骤: 1. 在项目名称中点击右键,点Export... 2.选择java-->Java File, next 3. 选择你打算打包的文件.可以选择某几个文件,也可 ...
- 一个小问题 关于 com.mysql.jdbc.PacketTooBigException: Packet for query is too large
这个错本身就是应为传输的数据大于mysql的max_allowed_packet参数默认值造成的: 之前遇到这个问题,一直是改max_allowed_packet的值 ,做项目遇到这个错误改了好几次, ...
- java注释代码规范
//收集了一小部分,忘记的时候过来查一下 java--hadoop部分 /** * 此类用来处理DNS原始日志:统计给定域名平均响应时延 * @param Input * @param Output ...
- Json、Pickle
目录 Json pickle Json JSON是一个序列化模块,一种用于存储和交换数据的语法. JSON是用JavaScript对象表示法(JavaScript object notation)格式 ...
- 洛谷[SHOI2002]滑雪题解
什么破题啊 简直就是浪费我时间! 我每天还被我xf定目标了不知道嘛! 题目 朴素的搜索只能得90分 #include <cstdio> #include <iostream> ...
- typora的使用技巧
目录 Typora 的 markdown 语法 标题: 插入图片: 链接: 字体变化: 删除: 文字高亮: 角标: 文本方位: :-:| :- | -: 制作表格: 常用快捷键(补充): 下划线: T ...