博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring 使用c3po连接池
阅读量:6803 次
发布时间:2019-06-26

本文共 4395 字,大约阅读时间需要 14 分钟。

1 数据源:能够简单理解为数据的来源。

2 连接池:是缓存一定数量的数据库连接,当程序须要数据库连接的时候,直接在连接池中获取空暇的连接,使用完再放回连接池中,此连接又变成空暇状态,等待下一次连接。

有于开启连接和关闭连接比較耗费系统资源,有类连接池的管理能够降低这方面的开支。

3 常见连接池:c3p0,dbcp,proxool是常见开源的三种连接池。

Spring提供的DriverManagerDataSource总是新建一个连接,根本没有起到连接池的作用。

4 连接池获取连接的方法: Connection conn=dataSource.getConnection();

5 例如以下是数据源的使用: 

  c3p0:

UserDao:

package com.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import javax.sql.DataSource;public class UserDao {	private DataSource dataSource;		public DataSource getDataSource() {		return dataSource;	}	public void setDataSource(DataSource dataSource) {		this.dataSource = dataSource;	}	public void save(){		try {			Connection conn=dataSource.getConnection();			String sql="insert into t_student values(?,?)";			PreparedStatement ps=conn.prepareStatement(sql);			ps.setInt(1, 1);			ps.setString(2, "zhang");			ps.executeUpdate();		} catch (SQLException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}			}}

UserService:

package com.service;import com.dao.UserDao;public class UserService {	private UserDao userDao;	public UserDao getUserDao() {		return userDao;	}	public void setUserDao(UserDao userDao) {		this.userDao = userDao;	}	public void save(){		userDao.save();	}}

applicationContext.xml:

> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property> <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"></property> <property name="user" value="orcl"></property> <property name="password" value="newsnews"></property> </bean> <bean id="userDao" class="com.dao.UserDao"> <property name="dataSource" ref="dataSource"></property> </bean> <bean id="userService" class="com.service.UserService"> <property name="userDao" ref="userDao"></property> </bean> </beans>

測试类:

package com.aop;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.service.UserService;public class Test {	public static void main(String[] args) {		ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");		UserService uc=(UserService) ac.getBean("userService");		uc.save();	}}

6       为了方便维护,改动数据源,能够把数据源的值写在配置中,这样的方式是通过设置站位符实现的。使用Spring的 PropertyPlaceholderConfigurer。

    须要在spring配置中添加一个管理配置的bean,用来管理数据源取值的配置。

classpath:c3p0.properties

       classpath:配置的路径。从src文件夹開始。

applicationContext.xml

> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:component-scan base-package="com.*" /> <context:annotation-config /> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>classpath:c3p0.properties</value> </property> </bean> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${driverClass}"></property> <property name="jdbcUrl" value="${jdbcUrl}"></property> <property name="user" value="${user}"></property> <property name="password" value="${password}"></property> </bean> </beans>

c3p0.properties

driverClass=oracle.jdbc.driver.OracleDriverjdbcUrl=jdbc:oracle:thin:@localhost:1521:XEuser=orclpassword=newsnews

=前面的值要和${}里面的值相应。



转载地址:http://rijwl.baihongyu.com/

你可能感兴趣的文章
Maven
查看>>
MovieReview—Kingsman THE SECRET SERVICE(王牌特工之特工学院)
查看>>
C语言成长学习题(九)
查看>>
银行里的迷宫
查看>>
codevs——1294 全排列
查看>>
9.13模拟试题
查看>>
自动生成单据编号
查看>>
[noip模拟]画展<队列的基础知识>
查看>>
Java时间转换类实现
查看>>
ios之UITextfield (2)
查看>>
appium自动化测试 环境搭建
查看>>
iOS中的webView加载HTML
查看>>
popupwindow使用之异常:unable to add window -- token null is not valid
查看>>
线程邮箱
查看>>
hdu4119 模拟旋转矩阵mask解密
查看>>
Tempter of the Bone
查看>>
ACM课程总结
查看>>
Codeforces Round #371 (Div. 2) C. Sonya and Queries
查看>>
Intelligence System
查看>>
spring3.0.2--com/ibatis/common/xml/NodeletException类找不到的问题
查看>>