基于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 ...
随机推荐
- PAT 乙级 1047.编程团体赛 C++/Java
题目来源 编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行 ...
- Java精通并发-Condition详解及相比于传统线程并发模式的改进
在上一次https://www.cnblogs.com/webor2006/p/11792954.html对于Lock的具体实现类ReentrantLock用了一个示例对它进行了一个简单的了解,而它其 ...
- Linux下使用cx_Oracle的一些配置
在安装完成cx_Oracle后,import cx_Oracle时报错,首先查看.bash_profile文件中环境变量配置 # .bash_profile # Get the aliases an ...
- 06-C#笔记-常量
1. 进制 前缀:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制. 后缀:可以是 U 或 L 的组合,其中,U 和 L 分别表示 unsigned 和 long.后缀可以是大写或者 ...
- JDOJ 1140: 完数
JDOJ 1140: 完数 题目传送门 Description 一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如,6的因子为1.2.3,而6=1+2+3,因此6是&qu ...
- 【C#】身份证号正确性验证及正则表达式格式验证
身份证前两位各省对应的编号是: 1.华北地区:北京市|11,天津市|12,河北省|13,山西省|14,内蒙古自治区|15: 2.东北地区: 辽宁省|21,吉林省|22,黑龙江省|23: 3.华东地区: ...
- 实现js版StringBuilder
.net中StringBuilder的好处不多说了,下面是js版的StringBuilder var StringBuilder = (function () { function StringBui ...
- 异常CLRDBG_NOTIFICATION_EXCEPTION_CODE( 0x04242420)
简介 CLRDBG_NOTIFICATION_EXCEPTION_CODE,值为0x0x04242420.此异常在.CLR 4.0的启动路径期间触发,是CLR4.0版本初始化调试服务时向调试器发送消息 ...
- django -- ORM实现图书增删改查
表结构设计 上篇我们实现了出版社的增删改查,出版社数据表有两个字段id和name,那图书的表结构怎么设计呢?图书也要有一个主键id,还要有一个名称title,是哪个出版社的,要有个字段press和Pr ...
- python发展
python的创始人---吉多·范罗苏姆(Guido van Rossum)