关于数据库连接池,我觉得有些沮丧,因为最后被毙掉了说不用考虑多线程的问题……
数据库连接池的推荐:https://www.cnblogs.com/nuccch/p/8120349.html
我最终选择的是c3p0,不过找不到最详细的那份教程了,也解决不了如何去掉log4j的warn日志的问题。
断网了,丢记录了不想记录了……
一、配置maven文件
<!-- c3p0连接池 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
二、配置账号密码信息
我选择的是使用xml配置文件,放在src/main/resources文件夹下面
<c3p0-config>
<!-- 默认数据源 -->
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306?useSSL=false</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="minPoolSize">3</property>
<property name="maxPoolSize">10</property>
<property name="acquireIncrement">5</property> </default-config> <!-- 定义带名称的数据源 -->
<named-config name="OracleDataSource">
<property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
<property name="jdbcUrl">jdbc:oracle:thin:@oracle的ip地址:端口号:服务名</property>
<property name="user">账号</property>
<property name="password">密码</property>
<property name="minPoolSize">3</property>
<property name="maxPoolSize">11</property>
<property name="acquireIncrement">5</property>
</named-config> </c3p0-config>
三、java中调用
try {
private DataSource ds;
// ds = new ComboPooledDataSource(); //本地mysql
ds = new ComboPooledDataSource("OracleDataSource"); //oracle
Connection connection = ds.getConnection();
//得到connection后可进行sql操作了
} catch (SQLException e) {
e.printStackTrace();
}
四、多线程调用数据库连接池