⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ticketorderdaofromdb.java

📁 航空售票系统的代码
💻 JAVA
字号:
package com.tarena.abs.dao;

import java.sql.Connection;
import java.util.Calendar;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.tarena.abs.model.*;


public class TicketOrderDaoFromDB implements TicketOrderDAO {

	private String table="TicketOrder";
	@Override
	public boolean cancelOrder(int TicketNumber) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public double getAllTicketMoney(Branch branch, Calendar startDate,
			Calendar endDate) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public double getAllTicketMoney(Calendar startDate, Calendar endDate) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public Set<TicketOrder> getAllTicketOrder(Branch branch, Calendar startDate,
			Calendar endDate) {
		Session s = null;
		Transaction t = null;
		HashSet<TicketOrder> hs = new HashSet<TicketOrder>();
		List l = null;

		//Date d = date.getDate();
		try {
			 s = HbnUtil.getSession();
			 t = s.beginTransaction();
			 String hql="from "+table+" where branch.name=?";
			 l = s.createQuery(hql)
		  		.setString(0, branch.getName())
		  		.list();
			 for(TicketOrder item:(List<TicketOrder>)l){
				 if(item.getCal().after(startDate) && item.getCal().before(endDate)){
					 hs.add(item);
				 }
			 }
			  System.out.println("DAO查到的符合条件的订单集合"+hs);
			 t.commit();
		} catch (HibernateException e) {
			e.printStackTrace();
			t.rollback();
		} finally{
			if(s!=null)try{s.close();}catch(Exception e){e.printStackTrace();}
		}
       return hs;
	}

	@Override
	public boolean order(Order ord) {
		
		Session s = null;
		Transaction t = null;
		boolean b = true;  //默认成功,失败则改变数据
		
		try {
			 s = HbnUtil.getSession();
			 t = s.beginTransaction();
			 for(Object o:ord.getItems()){
				 TicketOrder i = (TicketOrder)o;
				 Flight f = i.getFlight();
				 
				 //不是婴儿票,改变舱位数量
				 if(!i.getT_type().equals(TicketType.BabyTicket)){

					 //经济舱
					 if(i.getF_class().equals(CabinClass.EconomyClass)){
						 //经济舱座位已满
						 if(f.getEconomy_class_remain_seats()<=0){
							 return false;
						 }else{
						 //剩余座位减一
							 f.setEconomy_class_remain_seats(f.getEconomy_class_remain_seats()-1);
							 s.update(f);
							 s.save(i);
						 }
					 }
					 if(i.getF_class().equals(CabinClass.OfficialClass)){
						 if(f.getBusiness_class_remain_seats()<=0){
							 return false;
						 }else{
							 f.setBusiness_class_remain_seats(f.getBusiness_class_remain_seats()-1);
							 s.update(f);
							 s.save(i);
						 }
							 
					 }
					 if(i.getF_class().equals(CabinClass.FirstClass)){
						 if(f.getFirst_class_remain_seats()<=0){
							 return false;
						 }else{
							 f.setFirst_class_remain_seats(f.getFirst_class_remain_seats()-1);
							 s.update(f);
							 s.save(i);
						 }	
					 }
				 }
			 }//end for
			 if(b==false){
				 throw new HibernateException("舱位已满");
			 }
			t.commit();
			b = true;
		} catch (HibernateException e) {
			e.printStackTrace();
			t.rollback();
		} finally{
			if(s!=null)try{s.close();}catch(Exception e){e.printStackTrace();}
		}
		return b;	
	}

	@Override
	public Set<TicketOrder> getAllTicketOrder() {
		Session s = null;
		Transaction t = null;
		HashSet<TicketOrder> hs = new HashSet<TicketOrder>();
		List l = null;

		try {
			 s = HbnUtil.getSession();
			 t = s.beginTransaction();
			 String hql="from "+table;
			 l = s.createQuery(hql)
		  		.list();
			 hs.addAll(l);
			  System.out.println("DAO查到的所有的订单集合"+hs);
			 t.commit();
		} catch (HibernateException e) {
			e.printStackTrace();
			t.rollback();
		} finally{
			if(s!=null)try{s.close();}catch(Exception e){e.printStackTrace();}
		}
       return hs;
	}


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -