DBCP 与 Spring 集成

下面将通过 Spring 配置文件 application-context.xml 配置 DBCP 数据源(),然后将它作为 JdbcTemplate 的数据源。客户端程序通过 JdbcTemplate 实例获取数据库当前的时间戳。

环境

JDK版本:1.8

Spring版本:5.3.22

MySQL版本:5.7.*

Maven 依赖

将下面依赖添加到 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>

Spring 配置

在项目 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>

Java 代码

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
说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号