
BasicDataSource它是javax.sql.DataSrouce的子類。
一個工具類:BasicDataSourceFactory。
手工通過代碼連接數據庫:
BasicDataSource ds = new BasicDataSource(); //設置driver ds.setDriverClassName("com.MySQL.jdbc.Driver"); //設置url ds.setUrl("jdbc:mysql:///db909?characterEncoding=UTf8"); ds.setPassWord("1234"); ds.setUsername("root"); ds.setMaxActive(5) ;//設置最多有幾個連接 ds.setInitialSize(2);//設置在開始時創建幾個連接 手工連接,不建議這么做。在dbcp中一個類專門用于讀取資源文件的:
BasicDataSourceFactory
#以下所有屬性,都來自于BaiscDataSource的setXxxx//增加一個配置文件jdbc.PRopertiesdriverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql:///db909username=rootpassword=1234maxActive=3Properties p = new Properties(); p.load(DbcpPool.class.getResourceAsStream("jdbc.properties")); DataSource ds = new BasicDataSourceFactory().createDataSource(p) ;第四步、使用連接池
在一個項目中,就只能擁有一個DataSource的實例。在這個dataqSource3中有多個Connectioin。
聲明一個工廠類,創建維護唯一的一個DataSource
package cn.itcast.utils;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSourceFactory;public class DataSourceUtils { private DataSourceUtils(){} private static DataSource ds; static{ try{ Properties p = new Properties(); p.load(DataSourceUtils.class.getClassLoader() .getResourceAsStream("jdbc.properties")); ds = new BasicDataSourceFactory().createDataSource(p); }catch(Exception e){} } //返回一個唯一的連接 public static Connection getCon(){ Connection con = null; try { con = ds.getConnection(); } catch (SQLException e) { e.printStackTrace(); } return con; } //提供一個方法返回DataSource public static DataSource getDs(){ return ds; }}新聞熱點
疑難解答