`
- 浏览:
62677 次
- 性别:
- 来自:
湖北
-
vo层
java 代码
- package org.show;
-
-
-
-
-
-
-
- @SuppressWarnings("serial")
- public class Account implements java.io.Serializable {
-
-
-
-
- private Integer accountid;
- private String accountname;
- private Integer money;
-
-
-
-
-
- public Account() {
- }
-
-
-
- public Account(String accountname, Integer money) {
- this.accountname = accountname;
- this.money = money;
- }
-
-
-
-
- public Integer getAccountid() {
- return this.accountid;
- }
-
- public void setAccountid(Integer accountid) {
- this.accountid = accountid;
- }
-
- public String getAccountname() {
- return this.accountname;
- }
-
- public void setAccountname(String accountname) {
- this.accountname = accountname;
- }
-
- public Integer getMoney() {
- return this.money;
- }
-
- public void setMoney(Integer money) {
- this.money = money;
- }
-
-
- }
DAO层
java 代码
- package org.show;
-
- import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
-
- public class AccountDAO extends HibernateDaoSupport {
-
- public void addMoney(Integer accountId,int money){
-
- Account account = (Account)getHibernateTemplate().get(Account.class,accountId);
- account.setMoney(account.getMoney() + money);
- getHibernateTemplate().saveOrUpdate(account);
- }
-
- public void subMoney(Integer accountId,int money){
-
- Account account = (Account)getHibernateTemplate().get(Account.class,accountId);
- account.setMoney(account.getMoney() - money);
- getHibernateTemplate().saveOrUpdate(account);
- }
- }
Service层
java 代码
- package org.show;
-
- public class AccountService {
-
- private AccountDAO accountDAO;
- public void setAccountDAO(AccountDAO _accountDAO){
-
- accountDAO = _accountDAO;
- }
- public void transfer(Integer fromAccountId, Integer toAccountId,int money){
-
- accountDAO.subMoney(fromAccountId, money);
- accountDAO.addMoney(toAccountId, money);
- }
- }
测试方法
java 代码
- package org.show;
-
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.FileSystemXmlApplicationContext;
-
- public class Main {
-
-
-
-
- public static void main(String[] args) {
-
- ApplicationContext act = new FileSystemXmlApplicationContext("src/applicationContext.xml");
- AccountService accountService = (AccountService)act.getBean("accountService");
- try{
-
- accountService.transfer(1, 2, 1);
-
- }catch(Exception e){
-
- System.out.println("转帐失败!");
- }
- }
-
- }
Account.hbm.xml映射文件
xml 代码
- <!---->xml version="1.0"?>
- <!---->
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-
- <hibernate-mapping>
- <class name="org.show.Account" table="account" >
- <id name="accountid" type="java.lang.Integer">
- <column name="accountid" />
- <generator class="native" />
- id>
- <property name="accountname" type="java.lang.String">
- <column name="accountname" length="20" not-null="true" />
- property>
- <property name="money" type="java.lang.Integer">
- <column name="money" not-null="true" />
- property>
- class>
- hibernate-mapping>
xml 代码
- <!---->xml version="1.0" encoding="UTF-8"?>
- <!---->>
-
- <beans>
-
- <bean id="dataSource"
- class="org.apache.commons.dbcp.BasicDataSource">
-
- <property name="driverClassName">
- <value>com.mysql.jdbc.Drivervalue>
- property>
-
- <property name="url">
- <value>jdbc:mysql://localhost:3306/thjvalue>
- property>
-
- <property name="username">
- <value>rootvalue>
- property>
-
- <property name="password">
- <value>1234value>
- property>
- bean>
-
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
-
- <property name="dataSource">
- <ref bean="dataSource" />
- property>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">
- org.hibernate.dialect.MySQLDialect
- prop>
- <prop key="hibernate.show_sql">trueprop>
- props>
- property>
- <property name="mappingResources">
- <list>
- <value>org/show/Account.hbm.xmlvalue>
- list>
- property>
- bean>
-
- <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
-
- <property name="sessionFactory" ref="sessionFactory">property>
- bean>
-
- <bean id="accountDAO" class="org.show.AccountDAO">
- <property name="sessionFactory" ref="sessionFactory">property>
- bean> Spring配置文件
-
- <bean id="accountService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
-
- <property name="transactionManager" ref="transactionManager">property>
-
- <property name="target">
-
- <bean class="org.show.AccountService">
- <property name="accountDAO" ref="accountDAO">property>
- bean>
- property>
-
- <property name="transactionAttributes">
- <props>
-
- <prop key="transfer">PROPAGATION_REQUIREDprop>
- props>
- property>
- bean>
- beans>
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在Spring框架中,AOP(面向切面编程)和声明式事务管理是两个核心特性,它们极大地简化了Java企业级应用中的事务处理。本实例将深入探讨如何在Spring中使用AOP来实现声明式事务配置。 一、Spring AOP基础 AOP允许...
通过上述示例可以看出,Spring事务管理不仅支持编程式事务管理,还提供了更为简便的声明式事务管理方式。在实际开发中,应根据项目需求选择合适的事务管理方式。对于简单的业务逻辑,建议优先考虑声明式事务管理;而...
首先,Spring提供了两种主要的事务管理方式:编程式事务管理和声明式事务管理。 1. **编程式事务管理**:通过使用`PlatformTransactionManager`接口及其实现类(如`JdbcTemplate`或`HibernateTemplate`),开发者...
Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。 ##### 1. 编程式事务管理 编程式事务管理是指通过编写代码来控制事务的开始、提交和回滚。这种方式通常在代码中显式地使用`...
在这个示例中,我们更可能看到的是声明式事务管理,它是通过在方法上添加注解(如@Transactional)来配置的。这样,当方法执行时,Spring会自动管理事务的开始、提交或回滚。 接下来,我们来看看"bank_account.sql...
声明式事务管理则通过@Transactional注解,将事务管理与业务代码分离,更加灵活且易于维护。 5. 示例应用: 假设我们有一个银行转账操作,涉及两个账户的余额修改,这就需要在一个事务中完成,以保证数据一致性。...
Spring框架中提供了两种事务管理方式:编程式事务管理和声明式事务管理。在本篇文章中,我们主要介绍编程式事务管理。 什么是编程式事务管理? 编程式事务管理是指通过编写代码的方式来进行事务管理。这种方式...
2. **声明式事务管理**:这是Spring最常用且推荐的方式,通过在配置文件(XML或Java配置)中声明事务属性,如@Transactional注解,让Spring自动管理事务的生命周期。这种方式简化了代码,提高了可读性,并且降低了...
通过本章节的学习,您应该能够掌握如何使用JdbcTemplate进行基本的数据库操作,以及如何在Spring中配置和使用声明式事务来管理复杂的业务流程。这些技能对于开发基于Spring框架的应用程序至关重要。
JSF提供了一种声明式的方式来处理用户事件,更新模型数据,并与后端业务逻辑进行交互。在"dukesbank"项目中,JSF可能被用来创建银行应用的前端界面,如账户管理、交易记录查看等页面。** **EJB 3.0是Java EE...
- **定义**:Spring框架提供了一套灵活的事务管理机制,支持编程式事务管理和声明式事务管理。 - **作用**:确保数据的一致性和完整性。 - **实现方式**: - 编程式事务管理:通过TransactionTemplate或...
JSP是动态网页开发的Java技术,它将HTML代码与Java代码分离,使得开发者可以通过声明式编程方式创建动态内容。JSP页面在服务器端被转换为Servlet,然后执行并返回HTML到客户端。JSP标签库(JSTL)和自定义标签(Tag ...