下面直接通过 Java 代码使用 DBCP 数据库连接池连接到 MySQL 数据并获取一个数据库连接,通过该连接获取当前数据库的时间戳。
JDK版本:1.8
MySQL版本:5.7.*
将下面依赖信息添加到 pom.xml 文件:
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <!-- 数据库驱动依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency>
下面代码通过手动 new 一个 BasicDataSource 对象,然后使用 BasicDataSource 的 getConnection() 方法获取数据库连接。代码如下:
package com.hxstrive.jdbc_pool.dbcp;
import org.apache.commons.dbcp2.BasicDataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
* DBCP 简单使用
*
* @author hxstrive.com
*/
public class DbcpHello {
public static void main(String args[]) throws Exception {
Connection connection = null;
PreparedStatement ps = null;
ResultSet rs = null;
BasicDataSource bs = null;
try {
// 创建数据源
bs = new BasicDataSource();
bs.setDriverClassName("com.mysql.jdbc.Driver");
bs.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false");
bs.setUsername("root");
bs.setPassword("aaaaaa");
// 初始化时连接池中connection数量
bs.setInitialSize(10);
// 最小的空闲链接数量
bs.setMinIdle(5);
// 最大的空闲连接数量
bs.setMaxIdle(20);
// 最大的等待时间,单位是毫秒
bs.setMaxWaitMillis(60000);
// 是否开启自动提交,跟事务的控制有关
bs.setDefaultAutoCommit(true);
// 从连接池获取数据库连接
connection = bs.getConnection();
ps = connection.prepareStatement("select CURRENT_TIMESTAMP() as ct");
rs = ps.executeQuery();
if(rs.next()) {
System.out.println(rs.getTimestamp("ct"));
}
} finally {
// 释放资源
if(null != rs) {
rs.close();
}
if(null != ps) {
ps.close();
}
if(null != connection) {
connection.close();
}
if(null != bs) {
bs.close();
}
}
}
}运行代码,输出如下:
2023-07-06 12:36:50.0