【JavaSE】資料庫連線池
DBCP
什麼是?
DBCP(DataBase Connection Pool)資料庫連線池,是java資料庫連線池的一種,由Apache開發,通過資料庫連線池,可以讓程式自動管理資料庫連線的釋放和斷開
怎麼用?
1. 匯入jar包 commons-dbcp.jar,commons-pool.jar
2. 不使用配置檔案方式
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost/users");
dataSource.setUsername("root");
dataSource.setPassword("root");
conn = dataSource.getConnection();
String sql = "select * from user";
pstmt = conn.prepareStatement(sql);
...
3. 使用配置檔案方式。
1. 在 src 下定義配置檔案 dbcp.properties. 內容如下:
#連線設定
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
username=root
password=root
...
2. 使用程式碼讀取配置檔案,即可獲取連線池
Properties properties = new Properties();
properties.load(new FileInputStream("src/dbcp.properties"));
DataSource dataSource = BasicDataSourceFactory.createDataSource(properties);
conn = dataSource.getConnection();
String sql = "select * from user";
pstmt = conn.prepareStatement(sql);
...
C3P0
什麼是?
C3P0是一個開源的JDBC連線池,它實現了資料來源和JNDI繫結,支援JDBC3規範和JDBC2的標準擴充套件。目前使用它的開源專案有Hibernate,Spring等。
怎麼用?
1. 拷貝jar 檔案 c3p0-0.9.1.2.jar
2. 不使用配置檔案方式
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost/users");
dataSource.setUser("root");
dataSource.setPassword("root");
conn = dataSource.getConnection();
String sql = "select * from user";
pstmt = conn.prepareStatement(sql);
...
3. 使用配置檔案方式。
> c3p0的配置檔案 支援 properties , 也支援 xml 方式。 不過開發中,一般使用xml方式來配置
1. src下, 建立xml檔案,名為:c3p0-config.xml 注意此處,名字需要固定了。
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost/user</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 可選配置 -->
<property name="initialPoolSize">5</property>
</default-config>
</c3p0-config>
2. 程式碼中獲取連線child物件
ComboPooledDataSource dataSource = new ComboPooledDataSource();