Spring配置连接池

---------------------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

jdbc.password=8888

(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】

时间: 2024-10-06 17:58:03

Spring配置连接池的相关文章

spring配置连接池和dao使用jdbcTemplate

1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 (1)把代码中的实现在配置文件中实现 2 dao使用jdbcTemplate (1) 创建service和dao,配置了service和dao对象,在service注入dao对象 (2)创建jdbcTemplate对象,把jdbcTemplate对象注入到dao里面 (3)在jdbTemplate对象里面注入dataSource 原文地址:https://www.cnblogs.com/czs

spring创建连接池的几种方式

spring使用连接池有很多种方式,jdbc(不使用连接池),c3p0,dbcp,jndi,下面将分别贴代码介绍这几种:  1.jdbc方式 使用的是DriverManagerDataSource,DriverManagerDataSource建立连接是只要有连接就新建一个connection,  根本没有连接池的作用 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManag

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

springboot2.0配置连接池(hikari.druid) 原文链接:https://www.cnblogs.com/blog5277/p/10660689.html 原文作者:博客园--曲高终和寡 *******************如果你看到这一行,说明爬虫在本人还没有发布完成的时候就抓走了我的文章,导致内容不完整,请去上述的原文链接查看原文**************** springboot2.0之后,自带了一个号称全世界最快的连接池hikari,直接在配置文件里输入以下配置即可

JBoss配置连接池

什么是数据库连接池? 配置连接池为的是解决效率问题.因为每创建一个连接都是很耗时的,有了连接池,就可以提前放一些连接进去.以后我们再用连接就去连接池里面取而不是每次都创建.但是我们知道连接池是有上限的,如果只允许我们放10个,那么当这10个连接都被占用的时候,下一个用户再来请求连接将不能得到,只好等待,如果等的时间太长了就会抛出timeout的异常.使用完连接后要释放,否则会一直占着资源,当连接全部被占用而得不到释放时,就会出现错误... JBoss实现了J2EE的13个规范包括JNDI,JND

ibatis配置连接池

iBatis的连接设置 持久层中间件iBatis连接数据库的方式有3种,连接数据库的方式是JDBC,可以通过在XML文件中配置数据库连接,也可以在properties文件中配置.下面列出transactionManager的type为JDBC的3种连接配置. dataSource的type为SIMPLE的连接配置 以下是配置数据库连接参数的properties文件sql-map-config.properties的内容: ## SimpleDataSource properties ## Use

hibernate配置连接池的3中方式

三种连接都是以连接MySQl为例. <!-- JDBC驱动程序 --> <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEnc

Tomcat配置连接池

Tomcat配置DBCP连接池 配置tomcat服务器的时候,使用到jndi;通过Context配置文件实现配置池对象,通过new initialConext()对象的lookup()获取到数据池对象,在通过ds获取connction对象 我们在Java Web环境中使用DataSource时,通常不是自己去创建,而是通过在Tomcat中配置JNDI资源来完成. JNDI(Java Naming and Directory Interface),Java命名和目录接口.JNDI的作用就是:在服务

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

. 在学习期间,从未实践过在tomcat上配置连接池,今天终于实现一次,在tomcat玩了一把,不知道你是否现在有和我一样的困境.废话少说直接上代码 java public static Connection getConnection_tomcat() { Connection conn = null; try { Context initCtx = new InitialContext(); Context ctx = (Context) initCtx.lookup("java:comp/

Tomcat 【中配置连接池和数据源】

四.Tomcat 中配置连接池和数据源   1.DataSource接口介绍   (1)DataSource 概述 JDBC1.0原来是用DriverManager类来产生一个对数据源的连接.JDBC2.0用一种替代的方法,使用DataSource的实现,代码变的更小巧精致,也更容易控制. 一个DataSource对象代表了一个真正的数据源.根据DataSource的实现方法,数据源既可以是从关系数据库,也电子表格,还可以是一个表格形式的文件.当一个DataSource对象注册到名字服务中(JN