Spring学习_04_Spring和Hibernate整合数据源(DataSource)

本文详细介绍了如何在Spring中配置和使用DataSource,包括连接池的配置、SessionFactory的设置,以及在遇到`HibernateException: No Hibernate Session bound to thread`错误时,探讨了原因并提出了解决方案——通过在Service层添加事务控制。文章最后讨论了事务边界的定位,并通过增加日志记录功能作为示例,演示了如何在Service层进行事务管理。
摘要由CSDN通过智能技术生成

首先,说明一下DataSource是什么?DataSoure中有一个getConnection()方法,说明DataSource管理着数据库的连接,所以一般将其称为连接池。DataSource是一个抽象类,具体有很多的实现。比如Spring中常用的DBCP,Hibernate中常用的C3PO,以及不太常用的proxool。

那么下面我们首先来将一个使用数据源的例子程序搭建起来。分为如下几步:

第一步:我们在beans.xml中配置好我们的数据源,也就是我们的连接池,然后配置好我们的sessionFactory,Hibernate中的sessionFactory管理者session。而一个sesseion我们可以把它当成我们连接数据库的一个Connection。

<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: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/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
		<context:annotation-config/>
		<context:component-scan base-package="com.zxb"/>
		<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
			<property name="locations">
				<value>classpath:jdbc.properties</value>
			</property>
		</bean>
		<bean id="dataSource" destroy-method="close" 
		 class="org.apache.commons.dbcp.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>
		<bea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值