SpringBoot04(SpringBootDataJpa-Transactional)

目录结构:


同前面的不一样有:

package com.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 账户实体
 * @author Administrator
 *
 */
@Entity
@Table(name="t_account")
public class Account {
@Id
@GeneratedValue
private Integer id;

@Column(length=50)
private String userName;

private float balance;


public Integer getId() {
return id;
}


public void setId(Integer id) {
this.id = id;
}


public String getUserName() {
return userName;
}


public void setUserName(String userName) {
this.userName = userName;
}


public float getBalance() {
return balance;
}


public void setBalance(float balance) {
this.balance = balance;
}

}



DAO:

import org.springframework.data.jpa.repository.JpaRepository;
import com.entity.Account;


/**
 * 账户Dao接口
 * @author Administrator
 *
 */
public interface AccountDao extends JpaRepository<Account, Integer>{


}




Service:

/**
 * 账户Service接口
 * @author Administrator
 *
 */
public interface AccountService {
/**
* 从A用户转账b用户钱
* @param fromUser
* @param toUser
* @param account
*/
public void transferAccounts(int fromUser,int toUser,float account);
}



ServiceImpl:

import javax.annotation.Resource;
import javax.transaction.Transactional;
import org.springframework.stereotype.Service;
import com.dao.AccountDao;
import com.entity.Account;
import com.service.AccountService;

/**
 * 帐号Service实现类
 * @author Administrator
 *
 */
@Service("accountService")
public class AccountServiceImpl implements AccountService{
@Resource
private AccountDao accountDao;

@Transactional
public void transferAccounts(int fromUser, int toUser, float account) {
Account fromAccount=accountDao.getOne(fromUser);
fromAccount.setBalance(fromAccount.getBalance()-account);
accountDao.save(fromAccount);

Account toAccount=accountDao.getOne(toUser);

toAccount.setBalance(toAccount.getBalance()+account);

                //这里是为了测试事务回滚

int zero=1/0;
accountDao.save(toAccount);
}

}



控制器AccountController :

import javax.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.service.AccountService;

/**
 * 账户controller层
 * @author Administrator
 *
 */
@RestController
@RequestMapping("/account")
public class AccountController {
@Resource
private AccountService accoutService;
@RequestMapping("/transfer")
public String transferAccount(){
try{
accoutService.transferAccounts(1, 2, 200);
return "OK";
}catch(Exception e){
return "NO";
}
}
}


最后访问:http://localhost/account/transfer


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值