---------------------siwuxie095

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

Spring 配置连接池

 
 

 
 

1、Spring 配置内置连接池

 
 


applicationContext.xml 中添加如下内容:

 
 

<bean
id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property
name="driverClassName"
value="com.mysql.jdbc.Driver"/>

<property
name="url"
value="jdbc:mysql:///spring_db"/>

<property
name="username"
value="root"/>

<property
name="password"
value="8888"/>

</bean>

 
 

 
 

其中:

 
 

jdbc:mysql:///spring_db

jdbc:mysql://localhost:3306/spring_db
的简写

 
 


省略了
localhost:3306

 
 

 
 

 
 

 
 

2、Spring 配置 DBCP 连接池

 
 

(1)导入两个相关 jar 包

 
 

1)commons-dbcp

 
 

2)commons-pool

 
 

 
 

 
 

Commons DBCP 下载链接:

 
 

http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

 
 

 
 

Commons Pool 下载链接:

 
 

http://commons.apache.org/proper/commons-pool/download_pool.cgi

 
 

 
 

 
 

(2)在
applicationContext.xml 中添加如下内容:

 
 

<!--

注意:由于使用的是 DBCP 2.x 版本,所以全限定名是:

 

org.apache.commons.dbcp2.BasicDataSource

 

如果使用的 DBCP 1.x 版本,则全限定名是:

 

org.apache.commons.dbcp.BasicDataSource

-->

<bean
id="dataSource"
class="org.apache.commons.dbcp2.BasicDataSource">

<property
name="driverClassName"
value="com.mysql.jdbc.Driver"/>

<property
name="url"
value="jdbc:mysql:///spring_db"/>

<property
name="username"
value="root"/>

<property
name="password"
value="8888"/>

</bean>

 
 

 
 

 
 

 
 

3、Spring 配置 C3P0 连接池

 
 

(1)导入
c3p0 的
jar 包

 
 

 
 

 
 

C3P0 下载链接:http://mvnrepository.com/artifact/c3p0/c3p0

 
 

 
 

 
 

(2)在
applicationContext.xml 中添加如下内容:

 
 

<bean
id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource">

<property
name="driverClass"
value="com.mysql.jdbc.Driver"/>

<property
name="jdbcUrl"
value="jdbc:mysql:///spring_db"/>

<property
name="user"
value="root"/>

<property
name="password"
value="8888"/>

</bean>

 
 

 
 

 
 

 
 

4、Spring 配置数据库连接信息到属性文件中

 
 

(1)在
src
下创建属性文件
jdbc.properties

 
 

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql:///spring_db

jdbc.username=root

 
 

 
 

(2)在
applicationContext.xml 中引入外部属性文件

 
 

1)法一:

 
 

<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property
name="location"
value="classpath:jdbc.properties"/>

</bean>

 
 

 
 

2)法二:

 
 

<!-- 注意:此法要引入 context 约束 -->

<context:property-placeholder
location="classpath:jdbc.properties"/>

 
 

 
 

 
 

(3)在
applicationContext.xml 中配置连接池

 
 

1)法一:配置内置连接池

 
 

<bean
id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property
name="driverClassName"
value="${jdbc.driverClassName}"/>

<property
name="url"
value="${jdbc.url}"/>

<property
name="username"
value="${jdbc.username}"/>

<property
name="password"
value="${jdbc.password}"/>

</bean>

 
 

 
 

2)法二:配置
DBCP 连接池

 
 

<bean
id="dataSource"
class="org.apache.commons.dbcp2.BasicDataSource">

<property
name="driverClassName"
value="${jdbc.driverClassName}"/>

<property
name="url"
value="${jdbc.url}"/>

<property
name="username"
value="${jdbc.username}"/>

<property
name="password"
value="${jdbc.password}"/>

</bean>

 
 

 
 

3)法三:配置
C3P0 连接池

 
 

<bean
id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource">

<property
name="driverClass"
value="${jdbc.driverClassName}"/>

<property
name="jdbcUrl"
value="${jdbc.url}"/>

<property
name="user"
value="${jdbc.username}"/>

<property
name="password"
value="${jdbc.password}"/>

</bean>

 
 

 
 

 
 

参考链接:

 
 

参考链接1参考链接2

 
 

 
 

 
 

 
 

5、以内置连接池为例,进行测试

 
 

(1)在
MySQL 中手动创建数据库和表

 
 

数据库名:spring_db,表名:user,字段:username、password

 
 

 
 

 
 

 
 

(2)编写一个测试类

 
 

JdbcTemplateDemo.java:

 
 

package com.siwuxie095.jdbc;

 
 

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import org.springframework.jdbc.core.JdbcTemplate;

 
 

public class JdbcTemplateDemo {

 

/**

* 手动加上 @Test 以进行单元测试(将自动导入 JUnit 4 的 jar 包)

*

* 选中方法名,右键->Run As->JUint Test

*/

@Test

public
void add() {

 

ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");

 

JdbcTemplate jdbcTemplate=(JdbcTemplate) context.getBean("jdbcTemplate");

 

String sql="insert into user values(?,?)";

 

/**

* 调用 update() 方法实现添加,返回值是 int 型,

* 创建以接收,表示在数据库中影响的行数

*/

int row=jdbcTemplate.update(sql, "小强","4321");

System.out.println(row);

}

 
 

}

 
 

 
 

 
 

(3)在配置文件中进行配置

 
 

applicationContext.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.springframework.jdbc.datasource.DriverManagerDataSource">

<property
name="driverClassName"
value="com.mysql.jdbc.Driver"/>

<property
name="url"
value="jdbc:mysql:///spring_db"/>

<property
name="username"
value="root"/>

<property
name="password"
value="8888"/>

</bean>

 
 

 
 

<!-- 配置对象 -->

<bean
id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">

<!--

把对象 dataSource 传递到模板对象 jdbcTemplate 中

 

在 JdbcTemplate 源代码中有属性 dataSource 和其 set 方法,所以可以注入

-->

<property
name="dataSource"
ref="dataSource"></property>

</bean>

 
 

 
 

</beans>

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

【made by siwuxie095】

Spring配置连接池的更多相关文章

  1. spring配置连接池和dao使用jdbcTemplate

    1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 (1)把代码中的实现在配置文件中实现 2 dao使用jdbcTemplate (1) 创建ser ...

  2. Spring配置连接池和 Dao 层使用 jdbcTemplate

    1.Spring 配置 c3p0 连接池 (1)导入jar包(Maven项目) <dependency> <groupId>com.mchange</groupId> ...

  3. Spring c3p0连接池配置

    数据库连接池 数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”.预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去.我们可以通过设定连接 ...

  4. Spring c3p0连接池无法释放解决方案

    通过c3p0配置连接池的时候,在进行压力测试的时候,日志出现了这样一个错误:Data source rejected establishment of connection, message from ...

  5. springboot2.0配置连接池(hikari、druid)

    springboot2.0配置连接池(hikari.druid) 原文链接:https://www.cnblogs.com/blog5277/p/10660689.html 原文作者:博客园--曲高终 ...

  6. [转帖]springboot2.0配置连接池(hikari、druid)

    springboot2.0配置连接池(hikari.druid) 原文链接:https://www.cnblogs.com/blog5277/p/10660689.html 原文作者:博客园--曲高终 ...

  7. 转!数据库连接池概念、种类、配置(DBCP\C3P0\JndI与Tomact配置连接池)

    数据库连接池概念.种类.配置(DBCP\C3P0\JndI与Tomact配置连接池) 一.DBCP 连接:DBCP 连接池是 Apache 软件基金组织下的一个开源连接池实现. 需要的 java 包c ...

  8. Tomcat上配置连接池{ connect error=Name [jdbc/OracleDB] is not bound in this Context. Unable to find [jdbc]}

    . 在学习期间,从未实践过在tomcat上配置连接池,今天终于实现一次,在tomcat玩了一把,不知道你是否现在有和我一样的困境.废话少说直接上代码   java  public static Con ...

  9. Tomcat 配置连接池

    1. Tomcat 配置 JNDI 资源 JNDI(Java Naming and Directory Interface), Java 命名和目录接口; JNDI 作用: 在服务器上配置资源, 然后 ...

随机推荐

  1. Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 [Neutron Open vSwitch + VLAN Virtual Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  2. 使用postman模拟appium的http请求

    Appium是Server,接收http请求,使用Postman模拟请求 1.anyproxy 1.1.安装和运行 #安装 npm i -g anyproxy # 运行anyproxy,端口默认800 ...

  3. centos7 防火墙一些相关设置 开机添加静态路由 特殊的方法

    参考文献: https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/s ...

  4. 使用oracle导出的dmp文件(包含表结构还是表数据?)

    我们都知道oracle提供了一个exp程序,可以导出dmp文件,那么dmp文件中到底包含哪些东西呢? 1:有对象的信息吗?比如对象的权限? 2:有表空间信息吗? 3:有表结构吗? 4:有表的索引和触发 ...

  5. mono部分源码解析

    一.源码结构 这里仅列举几个重要的目录:mcs:    mcs: Mono实现的基于Ecma标准的C#编译器.    class: CLI的C#级的实现.类似于Android中的Java层,应用程序看 ...

  6. 网卡虚拟化技术:VMDq和SR-IOV

    通常情况下,一个服务器上跑几十个虚机,对计算和网络的需求是很惊人的.前者促生了当下的多核技术发展,后者则不能简单的用多网卡来实现.试想,每个虚机如果都需要10G的交换能力,服务器要配置几十块物理网卡, ...

  7. 线程使用方法 锁(lock,Rlock),信号了(Semaphore),事件(Event),条件(Ccndition),定时器(timer)

    2线程的使用方法  (1)锁机制       递归锁           RLock()    可以有无止尽的锁,但是会有一把万能钥匙       互斥锁:           Lock()     ...

  8. 得到当前对象在不同大小的页面中的绝对位置,及冒泡cancelBubble

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. 《GPU高性能编程CUDA实战》第十章 流

    ▶ 本章介绍了页锁定内存和流的使用方法,给出了测试内存拷贝.(单 / 双)流控制下的内存拷贝的例子. ● 测试内存拷贝 #include <stdio.h> #include " ...

  10. 使用three.js开发3d地图初探

    three是图形引擎,而web二维三维地图都是基于图形引擎的,所以拿three来开发需求简单的三维地图应用是没什么问题的. 1.坐标转换 实际地理坐标为经度.纬度.高度,而three.js使用的是右手 ...