📄 ticketorderdaofromdb.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 + -