下面将通过 Spring 配置文件 application-context.xml 配置 DBCP 数据源(),然后将它作为 JdbcTemplate 的数据源。客户端程序通过 JdbcTemplate 实例获取数据库当前的时间戳。
JDK版本:1.8
Spring版本:5.3.22
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>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.22</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.22</version> </dependency> <!-- 数据库驱动依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency>
在项目 resources 目录下面创建名为 application-context.xml 的配置文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> <!-- 数据库驱动 --> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <!-- 相应驱动的jdbcUrl,你懂的 --> <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false" /> <!-- 数据库的用户名 --> <property name="username" value="root" /> <!-- 数据库的密码 --> <property name="password" value="aaaaaa" /> <!-- 初始化时连接池中connection数量 --> <property name="initialSize" value="10" /> <!-- 最大的空闲连接数量 --> <property name="maxIdle" value="20" /> <!-- 最小的空闲链接数量 --> <property name="minIdle" value="5" /> <!-- 是否开启自动提交,跟事务的控制有关 --> <property name="defaultAutoCommit" value="true" /> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource" /> </bean> </beans>
package com.hxstrive.jdbc_pool.dbcp; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; import java.sql.Timestamp; /** * 配置 DBCP 为 JdbcTemplate 的数据源,利用 JdbcTemplate 获取数据库当前时间戳。 * @author hxstrive.com */ public class DbcpHello { public static void main(String[] args) { // 1.从 classpath 中加载配置文件 ApplicationContext applicationContext = new ClassPathXmlApplicationContext( "application-context.xml"); // 2.获取 JdbcTemplate 实例 Bean JdbcTemplate jdbcTemplate = applicationContext.getBean(JdbcTemplate.class); System.out.println("jdbcTemplate = " + jdbcTemplate); // 3.获取数据库当前的时间戳 Timestamp ts = jdbcTemplate.queryForObject("select CURRENT_TIMESTAMP() as ct", Timestamp.class); System.out.println(ts); } }
运行代码,输出如下:
jdbcTemplate = org.springframework.jdbc.core.JdbcTemplate@1a3869f4 2023-07-06 13:04:39.0