基於Druid數據庫連接池的DBUtil工具類


工具類 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      * 獲取數據庫連接池對象
43      * @return
44      */
45     public static DataSource getDataSource() {
46         return ds;
47     }
48 
49     /**
50      * 釋放數據庫資源
51      * @param rs
52      * @param sta
53      * @param conn
54      */
55     public static void close(ResultSet rs, Statement sta, Connection conn) {
56         if (null != rs) {
57             try {
58                 rs.close();
59             } catch (SQLException e) {
60                 e.printStackTrace();
61             }
62         }
63 
64         if (null != sta) {
65             try {
66                 sta.close();
67             } catch (SQLException e) {
68                 e.printStackTrace();
69             }
70         }
71 
72         if (null != conn) {
73             try {
74                 conn.close();       // 歸還數據庫連接對象
75             } catch (SQLException e) {
76                 e.printStackTrace();
77             }
78         }
79     }
80 
81 
82     /**
83      * 釋放數據庫連接資源
84      * @param sta
85      * @param conn
86      */
87     public static void close(Statement sta, Connection conn) {
88         close(null, sta, conn);
89     }
90 
91 }

配置文件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 }

數據庫查詢結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM