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做參數的 可能是配置文件配置的問題 一直不成功
如果有誰知道這個方法怎么用的話也請指教下 多謝咯~
