maven 文件配置:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>xyz.jangle</groupId>
<artifactId>jdbcpool</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.31</version>
</dependency>
<!-- 连接池 ,tomcat的jdbc pool -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>7.0.29</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<!-- 设置MAVEN的编译的JDK版本为1.8 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
Java CODE DEMO:
package jdbcpool;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.tomcat.jdbc.pool.DataSource;
/**
*
* tomcat jdbc pool 连接池 DEMO
* @author jangle
* @email jangle@jangle.xyz
* @time 2022年2月17日 下午2:35:47
*
*/
public class M {
public static void main(String[] args) {
DataSource dataSource = new DataSource();
dataSource.setUrl("jdbc:mysql://mysql.jangle.xyz:10071/demo?characterEncoding=UTF8");
dataSource.setUsername("jangle");
dataSource.setPassword("*****");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
try {
Connection connection = dataSource.getConnection();
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery("select * from bs_demo");
while(result.next()) {
int i = result.getInt(1);
System.out.println(i);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
-- spring的配置备份:
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource">
<!-- <property name="driverClassName" value="com.mysql.jdbc.Driver" /> -->
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/jangle_test1?characterEncoding=UTF8" />
<property name="username" value="root" />
<property name="password" value="111111" />
<!-- 连接池启动时创建的初始连接数量 -->
<property name="initialSize" value="2" />
<!-- 最小空闲连接数量 -->
<property name="minIdle" value="2" />
<!-- 最大空闲连接数量(若该值高于maxActive,会被重置为与maxActive相同)(在高并发的情况下,使两值相等能提高响应性能) -->
<property name="maxIdle" value="10" />
<!-- 最大活动的连接数量(包含空闲连接数量) -->
<property name="maxActive" value="100" />
<!-- 当从连接池中取出一个连接时是否进行验证,若验证失败则从池中删除该连接并尝试取出另一个连接 。 默认为false -->
<!-- <property name="testOnBorrow" value="true" /> -->
<!-- 对池中空闲的连接是否进行验证,验证失败则回收此连接 -->
<property name="testWhileIdle" value="true" />
<!-- 用于验证的SQL sqlserver用select 1 。oracle用select 1 from dual-->
<property name="validationQuery" value="select 1 from dual" />
<!-- 验证空闲连接的时间间隔(单位毫秒) -->
<property name="validationInterval" value="3600000" />
<!-- 在空闲连接回收器线程运行期间休眠时间(毫秒), 该值不应该小于 1 秒,它决定线程多久验证空闲连接或丢弃连接的频率 -->
<property name="timeBetweenEvictionRunsMillis" value="3600000" />
</bean>