package com.zdp.service;
import java.sql.Connection;
import java.sql.SQLException;
import com.zdp.dao.AccountDAO;
import com.zdp.domain.Account;
import com.zdp.utils.JDBCUtils;
/**
* 业务逻辑层
*/
public class AccountService {
public void transfer(Account outAccount, Account inAccount, int money) throws SQLException {
// 开启 事务
Connection conn = JDBCUtils.getConnection();
conn.setAutoCommit(false);
// 查询两个账户
AccountDAO accountDAO = new AccountDAO();
outAccount = accountDAO.findAccountById(outAccount.getId());
inAccount = accountDAO.findAccountById(inAccount.getId());
// 转账 - 修改原账户金额
outAccount.setMoney(outAccount.getMoney() - money);
inAccount.setMoney(inAccount.getMoney() + money);
try {
// 更新账户金额, 注意: 这里往Dao层传递连接
accountDAO.update(outAccount, conn);
// int x = 1 / 0;
accountDAO.update(inAccount, conn);
// 转账成功, 提交事务
conn.commit();
} catch (Exception e) {
// 转账失败, 回滚事务
conn.rollback();
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java事务 - 传递Connection
共18个文件
java:5个
class:5个
jar:3个
需积分: 35 11 下载量 170 浏览量
2014-09-13
12:45:32
上传
评论
收藏 1.07MB RAR 举报
温馨提示
JDBC事务处理的作用对象为Connection, 因此要想控制操作在同一个事务里面, 我们必须要传递Connection, 确保使用的是同一个Connection.
资源推荐
资源详情
资源评论
收起资源包目录
Transaction1.rar (18个子文件)
Transaction1
bin
com
zdp
dao
AccountDAO.class 2KB
domain
Account.class 904B
service
AccountService.class 1KB
utils
JDBCUtils.class 736B
c3p0-config.xml 519B
junit
test
TransferTest.class 825B
test
junit
test
TransferTest.java 453B
.settings
org.eclipse.jdt.core.prefs 598B
src
com
zdp
dao
AccountDAO.java 975B
domain
Account.java 443B
service
AccountService.java 1KB
utils
JDBCUtils.java 507B
c3p0-config.xml 519B
.project 388B
.classpath 624B
lib
c3p0-0.9.1.2.jar 596KB
mysql-connector-java-5.0.8-bin.jar 528KB
commons-dbutils-1.4.jar 48KB
共 18 条
- 1
资源评论
zdp072
- 粉丝: 686
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功