1. 程式人生 > >使用Oracle的資料連線池

使用Oracle的資料連線池

三個jar依賴(maven專案):Junit jdbc org.apache.tomcat.dbcp

一個database.properties檔案內容如下:

#資料庫的配置資訊
#key.key2=value
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@119.29.159.215:8771:orcl
jdbc.username=scott
jdbc.password=tiger
initSize=10
maxSize=200

連線池程式碼:
package HuangCD.Util;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.tomcat.dbcp.dbcp.BasicDataSource;

public class DBUtil {
    //連線池物件
    private static BasicDataSource ds;
    private DBUtil(){
    	
    }
    //載入引數
    static{
        Properties p = new Properties();
        try {
            p.load(DBUtil.class.getClassLoader().getResourceAsStream("database.properties"));
            String driver = p.getProperty("jdbc.driver");
            String url = p.getProperty("jdbc.url");
            String user = p.getProperty("jdbc.username");
            String pwd = p.getProperty("jdbc.password");
            String initSize = p.getProperty("initSize");
            String maxSize = p.getProperty("maxSize");
            //建立連線池
            ds = new BasicDataSource();
            //設定引數
            ds.setDriverClassName(driver);
            ds.setUrl(url);
            ds.setUsername(user);
            ds.setPassword(pwd);
            ds.setInitialSize(new Integer(initSize));
            ds.setMaxActive(new Integer(maxSize));
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException("載入配置檔案失敗",e);
        }
    }
    /*
     * 以上就是將配置檔案裡的引數全部讀取出來,接下來就是要
     * 寫兩個方法,一個是用來建立連線的,一個關閉連線
     * */
    public static Connection getConnection() throws SQLException{
        return ds.getConnection();
    }
    
    public static void close(Connection conn){
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException("關閉連線失敗",e);
            }
        }
    }
}
測試程式碼:
package HuangCD.Util;




import java.sql.Connection;
import java.sql.SQLException;


import org.junit.Test;






public class Testdb {
    @Test
    public void test01(){
        Connection conn = null;
        try {
            conn = DBUtil.getConnection();
            System.out.println("OK!");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            DBUtil.close(conn);
        }
        
    }
}

測試成功: