`
liliang_xf
  • 浏览: 60962 次
  • 性别: Icon_minigender_1
  • 来自: 湖北
社区版块
存档分类
最新评论
  • yangqk1: 不知道楼主还在关注这个么,你做的这个项目还在继续么。我真正研究 ...
    webim
  • 周超亿: 你好,我想请问下, http://code.faqee.com ...
    webim
  • 周超亿: 你好,能不能把项目打包发给我一份,谢谢 Email:zhouc ...
    webim
  • liliang_xf: SQL子查询,连接查询,数据汇总,GROUP BY,ORDER ...
    sql的
  • liliang_xf: http://www.ibm.com/developerwor ...
    webim

声明式事务处理(转账示例)

阅读更多
vo层
java 代码
  1. package org.show;   
  2.   
  3.   
  4.   
  5. /**  
  6.  * Account generated by MyEclipse - Hibernate Tools  
  7.  */  
  8.   
  9. @SuppressWarnings("serial")   
  10. public class Account  implements java.io.Serializable {   
  11.   
  12.   
  13.     // Fields       
  14.   
  15.      private Integer accountid;   
  16.      private String accountname;   
  17.      private Integer money;   
  18.   
  19.   
  20.     // Constructors   
  21.   
  22.     /** default constructor */  
  23.     public Account() {   
  24.     }   
  25.   
  26.        
  27.     /** full constructor */  
  28.     public Account(String accountname, Integer money) {   
  29.         this.accountname = accountname;   
  30.         this.money = money;   
  31.     }   
  32.   
  33.       
  34.     // Property accessors   
  35.   
  36.     public Integer getAccountid() {   
  37.         return this.accountid;   
  38.     }   
  39.        
  40.     public void setAccountid(Integer accountid) {   
  41.         this.accountid = accountid;   
  42.     }   
  43.   
  44.     public String getAccountname() {   
  45.         return this.accountname;   
  46.     }   
  47.        
  48.     public void setAccountname(String accountname) {   
  49.         this.accountname = accountname;   
  50.     }   
  51.   
  52.     public Integer getMoney() {   
  53.         return this.money;   
  54.     }   
  55.        
  56.     public void setMoney(Integer money) {   
  57.         this.money = money;   
  58.     }   
  59.       
  60.   
  61. }  

DAO层

java 代码
  1. package org.show;   
  2.   
  3. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;   
  4.   
  5. public class AccountDAO extends HibernateDaoSupport {   
  6.   
  7.     public void addMoney(Integer accountId,int money){   
  8.   
  9.         Account account = (Account)getHibernateTemplate().get(Account.class,accountId);   
  10.         account.setMoney(account.getMoney() + money);   
  11.         getHibernateTemplate().saveOrUpdate(account);   
  12.     }   
  13.   
  14.     public void subMoney(Integer accountId,int money){   
  15.   
  16.         Account account = (Account)getHibernateTemplate().get(Account.class,accountId);   
  17.         account.setMoney(account.getMoney() - money);   
  18.         getHibernateTemplate().saveOrUpdate(account);   
  19.     }   
  20. }  
Service层
java 代码
  1. package org.show;   
  2.   
  3. public class AccountService {   
  4.   
  5.     private AccountDAO accountDAO;   
  6.     public void setAccountDAO(AccountDAO _accountDAO){   
  7.            
  8.         accountDAO = _accountDAO;   
  9.     }   
  10.     public void transfer(Integer fromAccountId, Integer toAccountId,int money){   
  11.            
  12.         accountDAO.subMoney(fromAccountId, money);   
  13.         accountDAO.addMoney(toAccountId, money);   
  14.     }   
  15. }   

测试方法

java 代码

  1. package org.show;   
  2.   
  3. import org.springframework.context.ApplicationContext;   
  4. import org.springframework.context.support.FileSystemXmlApplicationContext;   
  5.   
  6. public class Main {   
  7.   
  8.     /**  
  9.      * @param args  
  10.      */  
  11.     public static void main(String[] args) {   
  12.            
  13.         ApplicationContext act = new FileSystemXmlApplicationContext("src/applicationContext.xml");   
  14.         AccountService accountService = (AccountService)act.getBean("accountService");   
  15.         try{   
  16.                
  17.             accountService.transfer(121);   
  18.                
  19.         }catch(Exception e){   
  20.                
  21.             System.out.println("转帐失败!");   
  22.         }   
  23.     }   
  24.   
  25. }   

Account.hbm.xml映射文件

xml 代码
  1. <!---->xml version="1.0"?>  
  2. <!---->
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  4. <!---->  
  5. <hibernate-mapping>  
  6.     <class name="org.show.Account" table="account"  >  
  7.         <id name="accountid" type="java.lang.Integer">  
  8.             <column name="accountid" />  
  9.             <generator class="native" />  
  10.         id>  
  11.         <property name="accountname" type="java.lang.String">  
  12.             <column name="accountname" length="20" not-null="true" />  
  13.         property>  
  14.         <property name="money" type="java.lang.Integer">  
  15.             <column name="money" not-null="true" />  
  16.         property>  
  17.     class>  
  18. hibernate-mapping>  

 

xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <!---->>  
  3.   
  4. <beans>  
  5. <!---->  
  6.     <bean id="dataSource"  
  7.         class="org.apache.commons.dbcp.BasicDataSource">  
  8.         <!---->  
  9.         <property name="driverClassName">  
  10.             <value>com.mysql.jdbc.Drivervalue>  
  11.         property>  
  12.         <!---->  
  13.         <property name="url">  
  14.             <value>jdbc:mysql://localhost:3306/thjvalue>  
  15.         property>  
  16.         <!---->  
  17.         <property name="username">  
  18.             <value>rootvalue>  
  19.         property>  
  20.         <!---->  
  21.         <property name="password">  
  22.             <value>1234value>  
  23.         property>  
  24.     bean>  
  25.     <!---->  
  26.     <bean id="sessionFactory"  
  27.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  28.         <!---->  
  29.         <property name="dataSource">  
  30.             <ref bean="dataSource" />  
  31.         property>  
  32.         <property name="hibernateProperties">  
  33.             <props>  
  34.                 <prop key="hibernate.dialect">  
  35.                     org.hibernate.dialect.MySQLDialect   
  36.                 prop>  
  37.                 <prop key="hibernate.show_sql">trueprop>  
  38.             props>  
  39.         property>  
  40.         <property name="mappingResources">  
  41.             <list>  
  42.                 <value>org/show/Account.hbm.xmlvalue>  
  43.             list>  
  44.         property>  
  45.     bean>  
  46.     <!---->  
  47.     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  48.     <!---->  
  49.         <property name="sessionFactory" ref="sessionFactory">property>  
  50.     bean>  
  51.   
  52.     <bean id="accountDAO" class="org.show.AccountDAO">  
  53.         <property name="sessionFactory" ref="sessionFactory">property>  
  54.     bean>   Spring配置文件
  55.     <!---->  
  56.     <bean id="accountService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">  
  57.         <!---->  
  58.         <property name="transactionManager" ref="transactionManager">property>  
  59.         <!---->  
  60.         <property name="target">  
  61.             <!---->  
  62.             <bean class="org.show.AccountService">  
  63.                 <property name="accountDAO" ref="accountDAO">property>  
  64.             bean>  
  65.         property>  
  66.         <!---->  
  67.         <property name="transactionAttributes">  
  68.             <props>  
  69.                 <!---->  
  70.                 <prop key="transfer">PROPAGATION_REQUIREDprop>  
  71.             props>  
  72.         property>  
  73.     bean>  
  74. beans>  
分享到:
评论

相关推荐

    MySql示例2:未使用事务进行转账.zip

    MySql示例2:未使用事务进行转账.zip MySql示例2:未使用事务进行转账.zip MySql示例2:未使用事务进行转账.zip

    MySql示例3:使用事务进行转账.zip

    MySql示例3:使用事务进行转账.zip MySql示例3:使用事务进行转账.zip MySql示例3:使用事务进行转账.zip

    SQL Server事务银行转账

    SQL Server事务银行转账,转账时间,卡号密码等,实现银行转账存储过程事务实现,jiandnayidong

    PHP事务处理实例 mysql事务处理的意义

    mysql事务处理的意义 事务处理机制在程序开发过程中有着非常重要的作用,它可以使整个系统更加安全,例如...采用事务处理机制,一旦在转账过程中发生意外,则程序将回滚,不做任何处理。 MYSQL的事务处理主要有两种方法

    银行转账,事务处理,触发器

    银行转账,事务处理,触发器,银行转账,事务处理,触发器

    Java jdbc三层及事务(转账案例)

    通过转账案例讲解了三层和事务,以及容易出现问题的关键点

    PHP+Mysql基于事务处理实现转账功能的方法

    本文实例讲述了PHP+Mysql基于事务处理实现转账功能的方法。分享给大家供大家参考。具体如下: &lt;?php header("Content-Type:text/html;charset=utf-8"); $mysqli=new mysqli("localhost","root","","test"); ...

    php+Mysqli利用事务处理转账问题实例

    主要介绍了php+Mysqli利用事务处理转账问题的方法,实例分析了php+mysqli处理事务的提交与回滚的技巧,需要的朋友可以参考下

    php利用事务处理转账问题

    本文实例讲述了php+Mysqli利用事务处理转账问题的方法。分享给大家供大家参考 &lt;?php header(Content-type:text/html; charset=utf-8); $mysqli = new mysqli(localhost, root, 064319, php); $mysqli-&gt;set_...

    spring 声明式事务管理

    简单编写了一个银行转帐的事务管理程序,建立数据库表的sql亦包含在压缩包中,由于上传的限制,jar包需要自己导入一下...如果转账成功,事务正常结束,只要在转账过程中有一个错误,事务出错,便回滚,帐号上的钱数不变

    Android数据库中事务操作方法之银行转账示例

    主要介绍了Android数据库中事务操作方法之银行转账,以具体的银行转账为例分析了Android数据库操作中事务的使用与回滚相关操作技巧,需要的朋友可以参考下

    简单的银行转账就是实现事务管理

    简单的银行转账,就是实现事务管理,要成功一起成功,要失败一起失败

    PHP使用pdo实现事务处理操作示例

    本文实例讲述了PHP使用pdo实现事务处理操作。分享给大家供大家参考,具体如下: 使用事务的好处: 举个例子:银行用户A向用户B转账100元,这个操作被分为两个步骤: (1)A的账户余额被扣去100。 (2)B的账户余额增加...

    支付宝单笔转账接口JAVA版本demo

    提供支付宝开放平台的单笔转账到支付宝账户接口JAVA版本demo 望大家共同进步

    java多线程模拟处理银行的实时转账交易

    模拟实现多线程处理银行的实时转账交易,代码完整,可以完美运行~

    银行转账事务小练习.zip

    银行转账事务的小练习,简单的简单表述了事务的四大特性(原子性:要么全部完成,要么全部不完成;一致性:事务开始之前和事务结束以后,数据库的完整性没有被破坏;持久性:事务完成以后,该事务对数据库的更改持久保存在...

Global site tag (gtag.js) - Google Analytics