accountservicehbnimpl.java
来自「加拿大达内科技有限公司配需java程序员的上课时的代码」· Java 代码 · 共 148 行
JAVA
148 行
package com.csd080111.bank.biz.service;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.csd080111.bank.biz.entity.Account;
import com.csd080111.bank.persistent.AccountDAOFactory;
import com.csd080111.bank.persistent.DataException;
import com.csd080111.bank.persistent.IAccountDAO;
import com.csd080111.bank.util.HbnUtil;
/*
* 服务类
* 实现接口IAccountServer 的全部方法
* 1、增加帐户 2、删除帐户 3、查询余额 4、存款 5、取款 6、转账
*/
public class AccountServiceHbnImpl implements IAccountService {
private IAccountDAO dao = AccountDAOFactory.getDAO("hhh");
/* 增加帐户*/
public void addAct(Account act) {
Session s = null;
Transaction tran =null;
try {
s = HbnUtil.getSession();
dao.insert(act, s);
tran.commit();
} catch (HibernateException e) {
e.printStackTrace();
} catch (DataException e) {
e.printStackTrace();
}finally{
HbnUtil.releaseSession(s);//释放这个Session
}
}
/* 存款*/
public void deposite(String actNo, double amount) {
Session s = null;
Transaction tran = null;
Account a = null;
try {
s = HbnUtil.getSession();
tran = s.beginTransaction();
a = dao.findByActNo(actNo, s);//调用数据类返回一个Account对象
a.deposite(amount);//account的增加amount方法
} catch (HibernateException e) {
e.printStackTrace();
if(tran != null) tran.rollback();
} catch (DataException e) {
e.printStackTrace();
if(tran != null) tran.rollback();
}finally{
HbnUtil.releaseSession(s);
}
}
/*查询余额*/
public double getBal(String actNo) {
Session s = null;
Transaction tran = null;
Account a = null;
double bal = 0.0;
try {
s = HbnUtil.getSession();
tran = s.beginTransaction();
a = dao.findByActNo(actNo, s);
bal =a.getBal();
tran.commit();
} catch (HibernateException e) {
e.printStackTrace();
if(tran != null) tran.rollback();
} catch (DataException e) {
e.printStackTrace();
if(tran != null) tran.rollback();
}finally{
HbnUtil.releaseSession(s);
}
return bal;
}
/* 删除帐户*/
public void removeAct(String actNo) {
Session s = null;
Transaction tran = null;
try{
s = HbnUtil.getSession();
tran = s.beginTransaction();
dao.delete(actNo, s);
tran.commit();
}catch(HibernateException e){
e.printStackTrace();
}catch(DataException e){
e.printStackTrace();
}finally{
HbnUtil.releaseSession(s);
}
}
/*转账*/
public void transfer(String from, String to, double amount) {
Session s = null;
Transaction tran = null;
Account a1 = null;
Account a2 = null;
try {
s = HbnUtil.getSession();
tran = s.beginTransaction();
a1 = dao.findByActNo(from, s);
a2 = dao.findByActNo(to, s);
a1.withdraw(amount);
a2.deposite(amount);
} catch (HibernateException e) {
e.printStackTrace();
if(tran!=null) tran.rollback();
} catch (DataException e) {
e.printStackTrace();
if(tran!=null) tran.rollback();
}finally{
HbnUtil.releaseSession(s);
}
}
/*取款*/
public void withdraw(String actNo, double amount) {
Session s = null;
Transaction tran = null;
Account a = null;
try {
s = HbnUtil.getSession();
tran = s.beginTransaction();
a = dao.findByActNo(actNo, s);
a.withdraw(amount);
dao.update(a, s);//是否需要调用次方法
tran.commit();
} catch (HibernateException e) {
e.printStackTrace();
} catch (DataException e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?