國航移動客艙項目SSH服務器端HIBERNATE的部分ORACLE查詢
流程大致如下:
通過航班號和出發日期(可能有出發時間)查詢flight表獲取主鍵flight_ID,
flight_ID通過中間表user_flight查詢到join_id,
通過join_id可以分別查詢到User(用戶表)和bag(行李表)中的相關信息
查詢航班
action層:
public void queryFlight(){
//輸入參數是fltNbr,dptDate [dptTime]
System.out.println("fltNbr="+fltNbr+"; dptDate="+dptDate);
try {
ResultInfo result = flightService.queryFlight(fltNbr, dptDate, dptTime);
doOutput((new JSONObject().fromObject(result)).toString());
} catch (Exception e) {
e.printStackTrace();
}
}
control層:
public ResultInfo queryFlight(String fltNbr, String dptDate, String dptTime) throws Exception {
/**
* 主要的處理邏輯:
* 1、根據輸入的 航班號、出發日期 和 出發時間 查詢航班信息,
* 2、將查詢結果以JSON格式保存到對應的文件
* 3、將JSON文件FTP到對應的文件目錄//
* 4、最後返回操作結果,
* 如果有新的文件成功生成 code=TRUE msg=FTP路徑和文件名;
* 如果沒有新文件生成、生成文件操作失敗 或FTP操作失敗 code=FLASE msg=具體解釋
*/
ResultInfo rstInfo = new ResultInfo();
List<AirFlight> resultList = flightDao.queryFlight(fltNbr, dptDate, dptTime);
String jsonContent = "";
if(resultList != null && resultList.size()>0){
JSONArray jsonArray = new JSONArray().fromObject(resultList);
jsonContent = jsonArray.toString();
}else{
jsonContent = "N/A";
}
/**處理文件 */
if("N/A".equals(jsonContent)){
rstInfo.setCode("FALSE");
rstInfo.setMsg("沒有查到對應的航班信息");
}else{
String md5Str = MD5Helper.StringToHash(fltNbr+"-"+dptDate);
String dataFileName = doJSONFileWriteAndFTP(md5Str, "flight_data", jsonContent);
rstInfo.setCode("TRUE");
rstInfo.setMsg(dataFileName);
}
return rstInfo;
}
DAO層
public List<AirFlight> queryFlight(String fltNbr, String dptDate, String dptTime) {
String queryHQL = " from AirFlight where fltNbr = ? and dptDt = ?";
Object[] value;
if(dptTime != null && dptTime.length()>0){
queryHQL = queryHQL +" and dptTm = ?";
value = new Object[]{fltNbr,dptDate,dptTime};
}else{
value = new Object[]{fltNbr,dptDate};
}
return (List<AirFlight>)this.getHibernateTemplate().find(queryHQL,value);
}
查詢用戶:
ACTION層:
private String joinId;
public void queryUser(){
System.out.println("joinId="+joinId);
try {
ResultInfo result = flightService.queryUser(fltId);
doOutput((new JSONObject().fromObject(result)).toString());
} catch (Exception e) {
e.printStackTrace();
}
}control層:
public ResultInfo queryUser(String fltId) throws Exception {
ResultInfo rstInfo = new ResultInfo();
List<AirUser> resultList = flightDao.queryUser(fltId);
String jsonContent = "";
if(resultList != null && resultList.size()>0){
JSONArray jsonArray = new JSONArray().fromObject(resultList);
jsonContent = jsonArray.toString();
}else{
jsonContent = "N/A";
}
/**處理文件 */
if("N/A".equals(jsonContent)){
rstInfo.setCode("FALSE");
rstInfo.setMsg("沒有查到對應的乘客信息");
}else{
String md5Str = MD5Helper.StringToHash("");
String dataFileName = doJSONFileWriteAndFTP(md5Str, "user_data", jsonContent);
rstInfo.setCode("TRUE");
rstInfo.setMsg(dataFileName);
}
return rstInfo;
}
DAO層:
public List<AirUser> queryUser(String fltId) {
String queryHQL = "select t3 from AirUser t3, AirUserFlight t2 where t2.joinId=t3.joinId and t2.fltId = ?";
Object[] value = new Object[]{fltId};
return (List<AirUser>)this.getHibernateTemplate().find(queryHQL,value);
}
查詢行李
action層:
private String fltId;
public void queryBaggage(){
System.out.println("fltId="+fltId+"; joinId="+joinId);
try {
ResultInfo result = flightService.queryAirBaggage(joinId, fltId, fltNbr);
doOutput((new JSONObject().fromObject(result)).toString());
} catch (Exception e) {
e.printStackTrace();
}
}
control層:
public ResultInfo queryAirBaggage(String joinId, String fltId,String fltNbr) throws Exception {
ResultInfo rstInfo = new ResultInfo();
List<AirBaggage> resultList = flightDao.queryAirBaggage(joinId, fltId, fltNbr);
String jsonContent = "";
if(resultList != null && resultList.size()>0){
JSONArray jsonArray = new JSONArray().fromObject(resultList);
jsonContent = jsonArray.toString();
}else{
jsonContent = "N/A";
}
/**處理文件 */
if("N/A".equals(jsonContent)){
rstInfo.setCode("FALSE");
rstInfo.setMsg("沒有查到對應的行李信息");
}else{
String md5Str = MD5Helper.StringToHash("");
String dataFileName = doJSONFileWriteAndFTP(md5Str, "baggage_data", jsonContent);
rstInfo.setCode("TRUE");
rstInfo.setMsg(dataFileName);
}
return rstInfo;
}
DAO層:
public List<AirBaggage> queryAirBaggage(String joinId, String fltId,String fltNbr) {
String queryHQL = "from AirBaggage t4 where t4.fltId = ? and t4.joinId= ?";
Object[] value = new Object[]{fltId,joinId};
return (List<AirBaggage>)this.getHibernateTemplate().find(queryHQL,value);
}
最後更新:2017-04-02 17:09:28