<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 提供了多种方式来处理数据库操作,包括 JPA、Hibernate 等主流 ORM 工具的集成。 #### 11. Spring Transaction Management 事务管理是保证数据一致性的重要手段,Spring 提供了...
3. **数据访问集成(Data Access Integration, DAO)**:Spring提供了对多种数据库访问技术的支持,包括JDBC、Hibernate和MyBatis等。通过查看源码,你可以学习到如何使用Spring的JdbcTemplate、HibernateTemplate...
4. Working with Spring Boot 5. Learning about Spring Boot Features 6. Moving to Production 7. Advanced Topics II. Getting Started 8. Introducing Spring Boot 9. System Requirements 9.1. Servlet ...
- **ORM (Object-Relational Mapping)**: 集成了Hibernate、MyBatis等ORM框架,使Java对象与数据库表之间的映射更加方便。 - **JPA (Java Persistence API)**: 支持JPA规范,提供了事务管理和查询API。 **3. ** *...
Spring提供了对各种数据访问技术的支持,包括JDBC、Hibernate、MyBatis等ORM框架,以及XML、JSON等对象/XML映射(Object/XML Mapping, OXM)技术。 7. **事务管理(Transaction Management)** Spring的Tx模块...
3. **HibernateTemplate** / **MyBatis-Spring**: 这两个是针对特定ORM框架(Hibernate和MyBatis)的模板类,它们进一步简化了对ORM框架的操作,例如自动处理session管理和事务,减少代码中的样板代码。 4. **...
3. **JPA 和 Hibernate**:为了与数据库交互,Spring Boot 提供了对 JPA(Java Persistence API)的支持,常用的实现是 Hibernate。我们需要定义 `BlogRepository` 接口,继承 `JpaRepository`,用于执行基本的 CRUD...
- Spring 2.0对数据访问层进行了大量优化,包括JDBC模板、Hibernate集成、JPA支持等。这些模板类简化了数据库操作,而ORM(对象关系映射)框架的集成则让开发者可以更方便地处理对象与数据库之间的映射。 5. **Web...
5. **框架集成**:Spring可以轻松地与其他优秀框架(如Struts、Hibernate、MyBatis、Quartz等)协同工作。 6. **降低API使用难度**:Spring对复杂的Java EE API进行了封装,如JDBC、JavaMail等,让开发者更易使用。 ...
Spring 2.0提供了对多种数据存储技术的支持,如JDBC、ORM(Object-Relational Mapping)框架如Hibernate和MyBatis,以及OXM(Object-XML Mapping)用于XML和对象之间的映射。它通过提供模板类和回调接口,简化了...
3.9. Testing Improvements ........................................................................................ 20 III. Core Technologies ..............................................................
3.9. Testing Improvements ........................................................................................ 20 III. Core Technologies ..............................................................
6. **Transaction Management**: 了解如何使用Spring的@Transactional注解来管理事务,确保数据库操作的一致性和完整性。 7. **Database Configuration**: 配置JPA连接到数据库,包括数据源、实体扫描、持久化单元...
6. **Transaction Management**: 在JPA中,事务管理是至关重要的。JPA支持编程式和声明式事务管理。声明式事务管理通过在方法上添加@Transactional注解实现,而编程式事务管理则需要手动开始和提交事务。 7. **...
4. **事务管理(Transaction Management)**:在进行多步骤的数据操作时,如转账操作,需要确保整个过程的原子性,这就涉及到事务管理。Spring框架提供了一种声明式事务管理方式,通过在方法上添加@Transactional...
Java的JTA(Java Transaction API)和Spring的@Transactional注解可用于管理事务。 7. **单元测试(Unit Testing)**:为了保证业务逻辑的正确性,开发过程中会编写单元测试,使用JUnit或其他测试框架对业务方法...
1. **核心业务逻辑(Domain Logic)**:这部分代码通常包含银行应用的核心实体,如账户(Account)、交易(Transaction)等,以及处理这些实体的领域服务(Domain Services)。它们定义了业务规则,不依赖于任何特定...
JPA通过ORM(对象关系映射)框架,如Hibernate或EclipseLink,将Java对象映射到数据库表,简化了数据库操作。在这个项目中,JPA可能被用来创建实体类、定义数据关系、执行CRUD操作以及事务管理。 2. **实体...