DBPool連接池的一個簡單示例


DBPool的下載地址  http://www.snaq.net/java/DBPool/

數據庫連接的時候開下比較大的一般是在連接部分 所以連接池起了一個很好的作用 可以在池中創建一定量的連接 這樣需要的時候就可以直接使用了

在頻繁操作數據庫時, 能提高效率 而且使用其實也是很簡單的 下面附上實現代碼

 1 package com.sunnyrun.init;
 2 
 3 import java.io.IOException;
 4 import java.sql.Driver;
 5 import java.sql.DriverManager;
 6 import java.sql.SQLException;
 7 import java.util.Properties;
 8 
 9 import snaq.db.ConnectionPool;
10 
11 public class DBConnectionPool
12 {
13     public static ConnectionPool pools;
14     
15     /**
16      * 靜態初始化, 加載數據庫驅動, 構建連接池等
17      */
18     static
19     {
20         String driverClass = "com.mysql.jdbc.Driver";
21         try
22         {
23             //加載數據庫驅動
24             Class c = Class.forName(driverClass);
25             Driver driver = (Driver) c.newInstance();
26             //注冊數據庫驅動
27             DriverManager.registerDriver(driver);
28             
29             Properties prop = new Properties();
30             //配置文件名為 db.properties 其格式是鍵值對的形式
31             //即url=xxxx  user=xxxx 這樣的形式 不過注意每個鍵/值對寫在新的一行
32             prop.load(DBConnectionPool.class.getResourceAsStream("db.properties"));
33             //取得連接的url, user 及 password 
34             String url = prop.getProperty("url");
35             String user = prop.getProperty("user");
36             String password = prop.getProperty("password");
37             //設置連接池的 名字 最小連接數量 最大連接數量 池的大小 超時 連接數據庫時的 URL, USER 與 PASSWORD
38             //最小 最大連接數量: 如果當前池中的連接數量小於最小數量, 或創建幾個新的連接以達到最小連接數量
39             //同理, 如果達到最大連接數量, 或關閉連接
40             //應該有這樣的關系 minPool <= maxPool <= maxSize 
41             pools = new ConnectionPool("dbSeekHandler", 3, 30, 50, 90, url, user, password);
42         }
43         catch (ClassNotFoundException e)
44         {
45             System.out.println("加載數據庫驅動失敗!");
46             e.printStackTrace();
47         }
48         catch (InstantiationException e)
49         {
50             e.printStackTrace();
51         }
52         catch (IllegalAccessException e)
53         {
54             e.printStackTrace();
55         }
56         catch (SQLException e)
57         {
58             e.printStackTrace();
59         }
60         catch (IOException e)
61         {
62             System.out.println("打開文件失敗!");
63             e.printStackTrace();
64         }
65     }
66     
67     public DBConnectionPool()
68     {
69         
70     }
71 }

 

其上把 pools定義為了靜態變量 可以在其他類中靜態導入該變量 然后直接調用

1 Connection conn = pools.getConnection();

即可得到一個數據庫連接

ConnectionPool還有一個這樣的構造函數

ConnectionPool(String name, int minPool, int maxPool, int maxSize, long idleTimeout, String url, Properties props)

可以直接傳入Properties做參數的  可能是配置文件配置的問題 一直不成功

如果有誰知道這個方法怎么用的話也請指教下 多謝咯~

 

 

 

 


免責聲明!

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



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