經常使用的數據庫鏈接池有倆種:dbcp和c3p0java
數據庫鏈接池做用:能夠控制數據庫鏈接池來優化效率,使得鏈接沒必要頻繁得到和關閉操做mysql
使用前必須導入:mysql-connector-java-5.1.7-bin.jar,commons-dbcp-1.4.jar和commons-pool-1.5.5.jar倆個jar包sql
dbcp數據庫鏈接池的建立有倆種方式。數據庫
第一種:提供BasicDataSource類,來建立鏈接池優化
BasicDataSource裏提供瞭如下方法:url
* setInitialSize(int count):設置鏈接池初始化鏈接個數
* setMaxActive(int count):設置同一時刻容許向數據庫同時申請鏈接個數
* setMinIdle(int count):設置鏈接池容許存在的最少空閒鏈接數目
* setMaxWait(int count):設置向鏈接池申請鏈接的時間(單位爲毫秒),超過期間會拋出異常spa* getConnection():得到鏈接對象Connectioncode
如下爲操做示例:對象
BasicDataSource basicDataSource=new BasicDataSource(); //設置鏈接池操做信息 basicDataSource.setDriverClassName("com.mysql.jdbc.Driver");//設置數據庫類型 basicDataSource.setUrl("jdbc:mysql://localhost:3306/test");//設置鏈接數據庫名 basicDataSource.setUsername("root"); //設置用戶名 basicDataSource.setPassword("123456"); //設置登陸密碼 //設置鏈接池初始化鏈接個數 basicDataSource.setInitialSize(10); //設置同一時刻內容許向鏈接池得到鏈接的最大鏈接數 basicDataSource.setMaxActive(20); //設置在鏈接池內容許保存的最小空閒鏈接數 basicDataSource.setMinIdle(5); //等待鏈接池分配鏈接的最長時間(單位爲毫秒),超出該時間拋出異常, basicDataSource.setMaxWait(5*1000); //從鏈接池得到鏈接 Connection connection=basicDataSource.getConnection(); System.out.println(connection.getClass());
第二種方法:提供DataSource類,來建立鏈接池get
BasicDataSourceFactory().createDataSource(properties):經過配置文件得到DataSource對象
getConnection():得到鏈接
注意:其他設置都可在配置文件完成,但須要名字小寫開頭且與方法名字對應
* 如:
* driverClassName=com.mysql.jdbc.Driver
* url=jdbc:mysql://localhost:3306/test
* maxActive=20
此方法經過讀取配置文件設置好數據庫鏈接池的設置
先在src目錄下建立一個dbcp.properties配置文件,設置好如下參數
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123456
initialSize=10
maxActive=20
minIdle=5maxWait=5000
再回到建立方法裏:
//第二種得到鏈接的方法 Properties properties=new Properties(); InputStream input=Use_dbcp.class.getClassLoader().getResourceAsStream("dbcp.properties"); properties.load(input); //經過配置文件設置鏈接池全部須要的參數 DataSource datasource=new BasicDataSourceFactory().createDataSource(properties); System.out.println(datasource.getConnection());