c3p0连接Mysql通过读取配置文件实现
程序员文章站
2024-03-20 08:49:28
...
序言:本次开发完全在IDEA下。
新建XML文件
IDEA下新建XML文件
默认IDEA下是没有XML文件的,需要自己手动添加配置模板,添加过程如下。
- 第一步
点击左上角File---->settings… - 第二步
选择Editor—>File And Code Templates—>中间选中Files - 第三步
按下图进行操作。
- 第四步
点击File—>New—>找到XML文件,创建XML文件。
XML文件配置
<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
<named-config name="Test_c3p0">
<!-- c3p0默认配置,下面还可以配置多个数据库 -->
<property name="jdbcUrl">jdbc:mysql://localhost:3306/world?useSSL=false&rewriteBatchedStatement=true</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">123456</property>
<!-- 初始化时获取连接数 -->
<property name="initialPoolSize">6</property>
<!-- 连接池中保留的最大连接数 -->
<property name="maxPoolSize">50</property>
<!-- 最大空闲时间,多少秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0 -->
<property name="maxIdleTime">1000</property>
</named-config>
</c3p0-config>
这里面有个点需要注意,我在调试的时候就遇到了这个问题。
jdbUrl再写的时候要注意其中的&符号,这个符号需要加amp;来进行使用,要不会读取配置失败
测试代码
@Test
public void TEST2C3P0(){
ComboPooledDataSource cpds = new ComboPooledDataSource("Test_c3p0");
Connection conn = null;
try {
conn = cpds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(conn);
}
打印LOG如下:
十二月 07, 2019 5:42:19 下午 com.mchange.v2.log.MLog <clinit>
信息: MLog clients using java 1.4+ standard logging.
十二月 07, 2019 5:42:23 下午 com.mchange.v2.c3p0.C3P0Registry banner
信息: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]
十二月 07, 2019 5:42:23 下午 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager
信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> Hello, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hgeby9a61q2v0zq1s689jh|762efe5d, idleConnectionTestPeriod -> 0, initialPoolSize -> 6, jdbcUrl -> jdbc:mysql://localhost:3306/world?useSSL=false&rewriteBatchedStatement=true, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 1000, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 50, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
com.mchange.v2.c3p0.impl.NewProxyConnection@3cb5cdba