資料庫連線池、讀取properties配置檔案小結
阿新 • • 發佈:2019-01-25
C3P0連線池:
直接通過java程式碼設定連線池(需要在工程目錄下匯入c3p0和資料庫連線的jar包):
步驟: 1.建立C3P0資料來源物件
2.設定資料庫連線基本資訊
3.設定資料庫連線池引數
利用properties檔案設定資料庫連線基本資訊:
步驟: 1.配置檔案位於src目錄下,配置檔案路徑應遵循類載入方式
InputStream in = null;
in=C3P0Pool.class.getClassLoader().getResourceAsStream("com/xiaogang/jdbcc3p0.properties")
2.將檔案和Properties物件關聯
Properties config = new Properties();
config.load(in);
3.可以通過config物件的config.getProperty("driver"));獲取檔案中的屬性
備註:
//Properties屬性資訊(屬性名和屬性值)
Properties prop = new Properties();
//儲存資料格式:屬性名=屬性值
//方法:put(attName,attValue);
prop.put("name", "xiaosan");
prop.put("now", new Date());
//獲取屬性的值: String getProperty(name)
String value=prop.getProperty("name");
System.out.println("name:"+value);
//獲取屬性的值: Object get(key)
對應的properties檔案:
user=scott
password=tiger
driver=oracle.jdbc.driver.OracleDriver
url=jdbc\:oracle\:thin\:@127.0.0.1\:1521\:orcl
username=scott
password=tiger
driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc\:oracle\:thin\:@127.0.0.1\:1521\:orcl
直接通過java程式碼設定連線池(需要在工程目錄下匯入c3p0和資料庫連線的jar包):
步驟: 1.建立C3P0資料來源物件
2.設定資料庫連線基本資訊
3.設定資料庫連線池引數
import java.sql.Connection; import com.mchange.v2.c3p0.ComboPooledDataSource; //C3P0Pool連線池 public class C3P0Pool { public static void main(String[] args) throws Exception { //第一步:建立C3P0資料來源物件 ComboPooledDataSource dataSource = new ComboPooledDataSource(); //第二步:設定資料庫連線基本資訊 //設定資料庫來接驅動 dataSource.setDriverClass("oracle.jdbc.OracleDriver"); //設定資料連線URL dataSource.setJdbcUrl("jdbc:oracle:thin:@127.0.0.1:1521:orcl"); //設定資料庫連線賬號 dataSource.setUser("xiaogang"); //設定資料庫連線賬號的密碼 dataSource.setPassword("xiaogang"); //第三步:設定資料庫連線池引數 //設定資料庫連線池中連線的最小數量 dataSource.setMinPoolSize(30); //設定資料庫連線池中連線的初始數量 dataSource.setInitialPoolSize(30); //設定資料庫連線池中連線的最大數量 dataSource.setMaxPoolSize(50); //未達到最大連線數,當前需要新增連線數量設定 dataSource.setAcquireIncrement(10); long start=System.currentTimeMillis(); for(int i=0;i<1000;i++){ Connection con=dataSource.getConnection(); con.close(); } long end=System.currentTimeMillis(); System.out.println(end - start); } }
利用properties檔案設定資料庫連線基本資訊:
步驟: 1.配置檔案位於src目錄下,配置檔案路徑應遵循類載入方式
InputStream in = null;
in=C3P0Pool.class.getClassLoader().getResourceAsStream("com/xiaogang/jdbcc3p0.properties")
2.將檔案和Properties物件關聯
Properties config = new Properties();
config.load(in);
3.可以通過config物件的config.getProperty("driver"));獲取檔案中的屬性
備註:
//Properties屬性資訊(屬性名和屬性值)
Properties prop = new Properties();
//儲存資料格式:屬性名=屬性值
//方法:put(attName,attValue);
prop.put("name", "xiaosan");
prop.put("now", new Date());
//獲取屬性的值: String getProperty(name)
String value=prop.getProperty("name");
System.out.println("name:"+value);
//獲取屬性的值: Object get(key)
String nowValue=prop.get("now").toString();
import java.beans.PropertyVetoException; import java.io.IOException; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3P0Pool { private static ComboPooledDataSource dataSource; private static Properties config = new Properties(); private static void init(){ try { //裝載配置檔案 config.load(C3P0Pool.class.getClassLoader() .getResourceAsStream("com/heres/jdbcc3p0.properties")); //宣告C3P0資料來源物件 dataSource = new ComboPooledDataSource(); //設定資料庫連線驅動 dataSource.setDriverClass( config.getProperty("driver")); //設定資料連線URL dataSource.setJdbcUrl( config.getProperty("url")); //設定資料庫連線使用者賬號 dataSource.setUser( config.getProperty("user")); //設定資料庫連線使用者賬號的密碼 dataSource.setPassword( config.getProperty("password")); //設定資料庫連線池中的初始化連線物件數量 dataSource.setInitialPoolSize(30); //設定資料庫連線池中的最小連線物件數量 dataSource.setMinPoolSize(30); //設定資料庫連線池中的最大連線物件數量 dataSource.setMaxPoolSize(60); //當連線不夠,每次新增連線數量 dataSource.setAcquireIncrement(10); } catch (IOException e) { e.printStackTrace(); } catch(PropertyVetoException e){ e.printStackTrace(); } } public static void main(String[] args) throws SQLException{ init(); int i=1000; long beginTime = System.currentTimeMillis(); while(i-->0){ Connection con = dataSource.getConnection(); con.close(); } long endTime = System.currentTimeMillis(); long time = endTime - beginTime; System.out.println("處理時間:"+time); } }
對應的properties檔案:
user=scott
password=tiger
driver=oracle.jdbc.driver.OracleDriver
url=jdbc\:oracle\:thin\:@127.0.0.1\:1521\:orcl
dbcp連線池(需要在工程目錄下匯入commons-pool.jar、commons-beanutils.jar、commons-dbcp.jar、commons-logging.jar和資料庫連線的jar包):
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class DBCPPool {
private static DataSource dataSource=null;
private static Properties dbconfig = new Properties();
public static void init(){
try {
//裝載配置檔案
dbconfig.load(DBCPPool.class.getClassLoader()
.getResourceAsStream("com/heres/jdbcdbcp.properties"));
System.out.println(dataSource);
//通過工廠類去建立資料來源物件
dataSource=BasicDataSourceFactory.createDataSource(dbconfig);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) throws SQLException{
init();
int i=1000;
long beginTime = System.currentTimeMillis();
while(i-->0){
Connection con = dataSource.getConnection();
con.close();
}
long endTime = System.currentTimeMillis();
long time = endTime - beginTime;
System.out.println("處理時間:"+time);
}
}
對應得配置檔案:username=scott
password=tiger
driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc\:oracle\:thin\:@127.0.0.1\:1521\:orcl