JDBC利用C3P0數(shù)據(jù)庫(kù)連接池連接數(shù)據(jù)庫(kù)
JDBC之C3P0數(shù)據(jù)庫(kù)連接池,供大家參考,具體內(nèi)容如下
1 首先在src中創(chuàng)建c3p0-config.xml 配置文件,文件中內(nèi)容如下(首先下載C3P0.jar工具包 并放入項(xiàng)目環(huán)境變量中)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xml> <c3p0-config> <!--下面四個(gè)是數(shù)據(jù)庫(kù)連接必須需要的東西 --> <named-config name="MySQL"> <!--為你的數(shù)據(jù)庫(kù)起一個(gè)名字,我的叫MySQL --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql:localhost:3306/jdbc_01</property> <property name="user">root</property> <!--數(shù)據(jù)庫(kù)賬號(hào) --> <property name="password">root</property> <!--數(shù)據(jù)庫(kù)密碼 --> <!-- 若數(shù)據(jù)庫(kù)鏈接數(shù)量不足的時(shí)候,向數(shù)據(jù)庫(kù)申請(qǐng)的連接數(shù)量 --> <property name="acquireIncrement">5</property> <!-- 初始化數(shù)據(jù)庫(kù)連接池連接的數(shù)量 --> <property name="initialPoolSize">10</property> <!-- 數(shù)據(jù)庫(kù)連接池中最小連接數(shù) --> <property name="minPoolSize">5</property> <!-- 數(shù)據(jù)庫(kù)連接池中最大連接數(shù) --> <property name="maxPoolSize">100</property> <!-- C3P0數(shù)據(jù)庫(kù)連接池可以維護(hù)的Statement的數(shù)量 --> <property name="maxStatements">2</property> <!-- 每個(gè)連接可同時(shí)使用Statement的數(shù)量 --> <property name="maxStatementsPerConnection">5</property> </named-config> </c3p0-config>
2 創(chuàng)建一個(gè)工具類用于利用C3P0數(shù)據(jù)庫(kù)連接池獲得數(shù)據(jù)庫(kù)連接 工具類如下
package cn.qhy.jdbc;
import java.io.IOException;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class MyDBUtils {
private static DataSource dataSource;
static {// 靜態(tài)代碼塊,只執(zhí)行一次
dataSource = new ComboPooledDataSource("MySQL");
}
/**
*
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
/**
* 通用的用來關(guān)閉數(shù)據(jù)有關(guān)的所有的資源的操作
*/
public static void close(Connection conn, Statement sta, ResultSet re) {
if (re != null)
try {
re.close();
} catch (SQLException e) {
e.printStackTrace();
}
if (sta != null)
try {
sta.close();
} catch (SQLException e) {
e.printStackTrace();
}
if (conn != null)
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
3 創(chuàng)建測(cè)試類,測(cè)試C3P0是否連接數(shù)據(jù)庫(kù)(利用JUnit單元測(cè)試)
package cn.qhy.test;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import org.junit.jupiter.api.Test;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import cn.qhy.jdbc.MyDBUtils;
public class C3P0Test {
/**
* @throws SQLException
*
*/
@Test
public void c3p0xmlTest() throws SQLException {
Connection conn = MyDBUtils.getConnection();
System.out.println(conn);
conn.close();
}
}
結(jié)果如下

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot下實(shí)現(xiàn)RedisTemplate?List?清空
我們經(jīng)常會(huì)使用Redis的List數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ)一系列的元素,當(dāng)我們需要清空一個(gè)List時(shí),可以使用RedisTemplate來實(shí)現(xiàn),本文就來詳細(xì)的介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下2024-01-01
springboot 自定義LocaleResolver實(shí)現(xiàn)切換語言
我們?cè)谧鲰?xiàng)目的時(shí)候,往往有很多項(xiàng)目需要根據(jù)用戶的需要來切換不同的語言,使用國(guó)際化就可以輕松解決。這篇文章主要介紹了springboot 自定義LocaleResolver切換語言,需要的朋友可以參考下2019-10-10
Spring注解驅(qū)動(dòng)之AOP功能測(cè)試
這篇文章主要介紹了Spring注解驅(qū)動(dòng)之AOP功能測(cè)試,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
springboot中的controller注意事項(xiàng)說明
這篇文章主要介紹了springboot中的controller注意事項(xiàng)說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Java的優(yōu)先隊(duì)列PriorityQueue原理及實(shí)例分析
這篇文章主要介紹了Java的優(yōu)先隊(duì)列PriorityQueue原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
SpringBoot整合POI導(dǎo)出通用Excel的方法示例
這篇文章主要介紹了SpringBoot整合POI導(dǎo)出通用Excel的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

