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 + -
显示快捷键?