<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
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
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">
<description>Quick DAO Start for Spring</description>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!--programming transaction-->
<bean id="tsService" class="com.transaction.SaveWithTs">
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
<property name="transactionTemplate">
<bean class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager">
</property>
</bean>
</property>
</bean>
<!--declaring transaction-->
<bean id="tsProxyService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="target" ref="tsProxyTransactionImpl"></property>
<property name="proxyInterfaces" value="com.transaction.TsProxyTransaction"></property>
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<props>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<!-- <prop key="*">PROPAGATION_SUPPORTS</prop>-->
</props>
</property>
</bean>
<bean id="tsProxyTransactionImpl" class="com.transaction.TsProxyTransactionImpl">
<!-- <property name="hibernateTemplate" ref="hibernateTemplate"></property>-->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mappingResources">
<list>
<value>com/dao/Area.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
</props>
</property>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
<property name="username" value="jil"></property>
<property name="password" value="jil"></property>
</bean>
</beans>
<!--programming transaction class testing-->
package com.transaction;
import org.hibernate.HibernateException;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;
import org.springframework.transaction.support.TransactionTemplate;
import com.dao.Area;
public class SaveWithTs implements TransactionCallback {
private TransactionTemplate transactionTemplate;
private HibernateTemplate hibernateTemplate;
public Object doInTransaction(TransactionStatus ts) {
// TODO Auto-generated method stub
return null;
}
public void saveWithTs(){
transactionTemplate.execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus ts) {
// TODO Auto-generated method stub
try{
Area area = new Area();
area.setAreaname("tanglei");
area.setAreadetail("tanglei");
area.setPid(new Long(10000));
area.setAreaid(new Long(10000));
area.setAreanum(new Long(10000));
//jdbcTemplate.execute("insert into Area values(1000,'hehe','haha',100,100)");
hibernateTemplate.save(area);
int j=1/0;
} catch (HibernateException e) {
ts.isRollbackOnly();
}
return null;
}
});
}
public void setTransactionTemplate(TransactionTemplate transactionTemplate) {
this.transactionTemplate = transactionTemplate;
}
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
}
<!--declaring transaction class testing-->
package com.transaction;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.dao.Area;
public class TsProxyTransactionImpl extends HibernateDaoSupport implements TsProxyTransaction {
public void addArea() {
// TODO Auto-generated method stub
Area area = new Area();
area.setAreaname("tanglei");
area.setAreadetail("tanglei");
area.setPid(new Long(10000));
area.setAreaid(new Long(10000));
area.setAreanum(new Long(10000));
//hibernateTemplate.save(area);
getHibernateTemplate().save(area);
//int j=1/0;
}
public void saveArea() {
// TODO Auto-generated method stub
Area area = new Area();
area.setAreaname("tanglei");
area.setAreadetail("tanglei");
area.setPid(new Long(10000));
area.setAreaid(new Long(10000));
area.setAreanum(new Long(10000));
getHibernateTemplate().save(area);
int j=1/0;
}
}
分享到:
相关推荐
Spring Persistence with Hibernate, Second Edition has been updated to cover Spring Framework version 4 and Hibernate version 5. After reading and using this book, you'll have the fundamentals to apply...
spring-hibernate-maven-transaction整合
里面为一个演示spring事务传播机制的小demo。简单实现转账功能,通过添加注解调整传播级别,同时通过日志打印查看sql是否执行,在mysql中的数据是否发生了变化(操作提交还是回滚了)。
在准备整合Spring之前,也在网上看了各种配置。但是楼主心里还是很纠结,...楼主还是一步一步的来吧,感觉Spring操作Hibernate还是离不开DataSource,SessionFactory,Transaction这几个要素。 详细说明看我的博客文章。
spring-transaction.jar.zip
在spring+hibernate的框架中定时操作数据库,主要是拿到sessionFactory,不会出现no session 和transaction no-bound等问题,由sessionFactory完成对数据的操作,有些包是没有用的,有兴趣的可以自己删除掉
Could not roll back Hibernate transaction.doc
spring 3.2.0+hibernate 4.1.6+struts2整合需要的jar包 的目录 antlr-2.7.7.jar aopalliance-1.0.jar asm-3.3.jar asm-commons-3.3.jar aspectjweaver-1.5.3.jar bonecp-0.7.1.RELEASE.jar cglib-2.1.3.jar ...
Spring在Transaction事务传播行为种类,希望对大家有所帮助
NULL 博文链接:https://wsjjasper.iteye.com/blog/1570448
org.springframework.transaction-3.2.2.RELEASE最新版本
一个简单的spring+hibernate+mysql 事务实例
可以对hibernate的 Session 和 Transaction 有更深入的认识 希望对一些概念比较模糊的人 有帮助
该软件依赖包,为实例spring aop实现Hinernate事务操作软件包
10. Spring with other Web Frameworks 11. Data Access 12. Spring Transaction Management 13. Spring Batch 14. Spring NoSQL and Big Data 15. Spring Java Enterprise Services and Remoting Technologies 16....
org.springframework.transaction-3.0.0.M4.jar
将DataSource、SessionFactory、Transaction等作为Spring的Bean,通过配置文件的方式来管理。 24.1 概述 24.1.1 概述 Spring提供了DAO支持,可以简化DAO组件的开发,特别是IoC容器的使用,提供了DAO组件与业务...
spring 事务管理工程,导入到MyEclipse 中既可以使用
Spring中的事务管理问题:org.springframework.transaction-3.1.0.M1.jar包。org.springframework.transaction-3.1.0.M1.jar包。
org.springframework.transaction-3.1.0.M2