工具类 DruidUtil.java

  1. package com.zzuli.util;
  2.  
  3. import com.alibaba.druid.pool.DruidDataSourceFactory;
  4.  
  5. import javax.sql.DataSource;
  6. import java.io.IOException;
  7. import java.sql.*;
  8. import java.util.Properties;
  9.  
  10. /**
  11. * Created by hejjon on 2019/6/19 23:10.
  12. * <p>
  13. * 基于Druid数据库连接池的工具类
  14. */
  15. public class DruidUtil {
  16. // 私有成员 DataSource
  17. private static DataSource ds;
  18.  
  19. static {
  20. try {
  21. // 加载配置文件
  22. Properties pro = new Properties();
  23. pro.load(DruidUtil.class.getClassLoader().getResourceAsStream("druid.properties"));
  24. // 获取DataSource对象
  25. ds = DruidDataSourceFactory.createDataSource(pro);
  26. } catch (Exception e) {
  27. e.printStackTrace();
  28. }
  29. }
  30.  
  31. /**
  32. * 获取连接
  33. * @return
  34. * @throws SQLException
  35. */
  36. public static Connection getConnection() throws SQLException {
  37. return ds.getConnection();
  38. }
  39.  
  40. /**
  41. * 获取数据库连接池对象
  42. * @return
  43. */
  44. public static DataSource getDataSource() {
  45. return ds;
  46. }
  47.  
  48. /**
  49. * 释放数据库资源
  50. * @param rs
  51. * @param sta
  52. * @param conn
  53. */
  54. public static void close(ResultSet rs, Statement sta, Connection conn) {
  55. if (null != rs) {
  56. try {
  57. rs.close();
  58. } catch (SQLException e) {
  59. e.printStackTrace();
  60. }
  61. }
  62.  
  63. if (null != sta) {
  64. try {
  65. sta.close();
  66. } catch (SQLException e) {
  67. e.printStackTrace();
  68. }
  69. }
  70.  
  71. if (null != conn) {
  72. try {
  73. conn.close(); // 归还数据库连接对象
  74. } catch (SQLException e) {
  75. e.printStackTrace();
  76. }
  77. }
  78. }
  79.  
  80. /**
  81. * 释放数据库连接资源
  82. * @param sta
  83. * @param conn
  84. */
  85. public static void close(Statement sta, Connection conn) {
  86. close(null, sta, conn);
  87. }
  88.  
  89. }

配置文件druid.properties

  1. driverClassName=com.mysql.jdbc.Driver
  2. url=jdbc:mysql://127.0.0.1:3306/zzuli
  3. username=root
  4. password=123123
  5. # 初始化连接数量
  6. initialSize=5
  7. # 最大连接数量
  8. maxActive=10
  9. # 最大等待时间
  10. maxWait=3000

测试类DruidDemo2.java

  1. package com.zzuli.testDruid;
  2.  
  3. import com.zzuli.util.DruidUtil;
  4.  
  5. import java.sql.Connection;
  6. import java.sql.PreparedStatement;
  7. import java.sql.SQLException;
  8.  
  9. /**
  10. * Created by hejjon on 2019/6/19 23:25.
  11. * <p>
  12. * 测试工具类DruidUtil
  13. */
  14. public class DruidDemo2 {
  15.  
  16. public static void main(String[] args) {
  17. Connection conn = null;
  18. PreparedStatement pre = null;
  19.  
  20. // 定义sql语句
  21. String sql = "insert into t_salary values (null,?,?)";
  22. try {
  23. // 获取连接
  24. conn = DruidUtil.getConnection();
  25. // 创建PreparedStatement对象
  26. pre = conn.prepareStatement(sql);
  27. // 设置?的值
  28. pre.setString(1, "王五");
  29. pre.setInt(2, 4000);
  30.  
  31. // 执行sql
  32. int count = pre.executeUpdate();
  33.  
  34. if (count >= 1) {
  35. System.out.println("记录添加成功");
  36. }
  37.  
  38. } catch (SQLException e) {
  39. e.printStackTrace();
  40. }
  41.  
  42. }
  43.  
  44. }

数据库查询结果

基于Druid数据库连接池的DBUtil工具类的更多相关文章

  1. 数据库连接池与SQL工具类

    数据库连接池与SQL工具类 1.数据库连接池 依赖包 pymysql dbutils # -*- coding: utf-8 -*- ''' @Time : 2021/11/19 16:45 @Aut ...

  2. Spring Boot [使用 Druid 数据库连接池]

    导读 最近一段时间比较忙,以至于很久没有更新Spring Boot系列文章,恰好最近用到Druid, 就将Spring Boot 使用 Druid作为数据源做一个简单的介绍. Druid介绍: Dru ...

  3. Druid 数据库连接池

    druid 数据库连接池 由阿里提供 步骤 1 导包 durid1.0.9 jar 包 2 定义配置文件 必须是 properties文件 名字任意 位置也任意 3 获得数据库连接池对象 通过 Dur ...

  4. Druid数据库连接池源码分析

    上一篇文章重点介绍了一下Java的Future模式,最后意淫了一个数据库连接池的场景.本想通过Future模式来防止,当多个线程同时获取数据库连接时各自都生成一个,造成资源浪费.但是忽略了一个根本的功 ...

  5. Druid数据库连接池就这么简单

    前言 本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并不够用阿~当时学习C3P0的时候,觉得这 ...

  6. 基于AQS实现的Java并发工具类

    本文主要介绍一下基于AQS实现的Java并发工具类的作用,然后简单谈一下该工具类的实现原理.其实都是AQS的相关知识,只不过在AQS上包装了一下而已.本文也是基于您在有AQS的相关知识基础上,进行讲解 ...

  7. 【spring boot】15.spring boot项目 采用Druid数据库连接池,并启用druid监控功能

    在http://www.cnblogs.com/sxdcgaq8080/p/9039442.html的基础上,来看看spring boot项目中采用Druid连接池. GitHub地址:示例代码 == ...

  8. Spring Boot集成Druid数据库连接池

    1. 前言 Druid数据库连接池由阿里巴巴开源,号称是java语言中最好的数据库连接池,是为监控而生的.Druid的官方地址是:https://github.com/alibaba/druid 通过 ...

  9. 数据库连接池,DBUtil的模板,dbcp,c3p0

    数据库连接池,DBUtil的模板,Druid使用(重点) 一.DBUtil模板 public class DBUtilTest { public static Connection connectio ...

随机推荐

  1. PAT 乙级 1047.编程团体赛 C++/Java

    题目来源 编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行 ...

  2. Java精通并发-Condition详解及相比于传统线程并发模式的改进

    在上一次https://www.cnblogs.com/webor2006/p/11792954.html对于Lock的具体实现类ReentrantLock用了一个示例对它进行了一个简单的了解,而它其 ...

  3. Linux下使用cx_Oracle的一些配置

    在安装完成cx_Oracle后,import  cx_Oracle时报错,首先查看.bash_profile文件中环境变量配置 # .bash_profile # Get the aliases an ...

  4. 06-C#笔记-常量

    1. 进制 前缀:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制. 后缀:可以是 U 或 L 的组合,其中,U 和 L 分别表示 unsigned 和 long.后缀可以是大写或者 ...

  5. JDOJ 1140: 完数

    JDOJ 1140: 完数 题目传送门 Description 一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如,6的因子为1.2.3,而6=1+2+3,因此6是&qu ...

  6. 【C#】身份证号正确性验证及正则表达式格式验证

    身份证前两位各省对应的编号是: 1.华北地区:北京市|11,天津市|12,河北省|13,山西省|14,内蒙古自治区|15: 2.东北地区: 辽宁省|21,吉林省|22,黑龙江省|23: 3.华东地区: ...

  7. 实现js版StringBuilder

    .net中StringBuilder的好处不多说了,下面是js版的StringBuilder var StringBuilder = (function () { function StringBui ...

  8. 异常CLRDBG_NOTIFICATION_EXCEPTION_CODE( 0x04242420)

    简介 CLRDBG_NOTIFICATION_EXCEPTION_CODE,值为0x0x04242420.此异常在.CLR 4.0的启动路径期间触发,是CLR4.0版本初始化调试服务时向调试器发送消息 ...

  9. django -- ORM实现图书增删改查

    表结构设计 上篇我们实现了出版社的增删改查,出版社数据表有两个字段id和name,那图书的表结构怎么设计呢?图书也要有一个主键id,还要有一个名称title,是哪个出版社的,要有个字段press和Pr ...

  10. python发展

    python的创始人---吉多·范罗苏姆(Guido van Rossum)