开发者社区> 广贤> 正文

国航移动客舱项目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);
	}






版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Oracle的服务器端和客户端同时安装Sqlplus无法登陆的处理
Oracle的服务器端和客户端同时安装Sqlplus无法登陆的处理
84 0
SSH项目,hibernate的查询操作出错org.hibernate.hql.ast.QuerySyntaxException
SSH项目,hibernate的查询操作出错org.hibernate.hql.ast.QuerySyntaxException
116 0
SSH开发项目:实现一组功能的步骤
本文主要讲实现一组功能的步骤
88 0
ssh项目出现Bean property 'xxx' is not writable or has an invalid setter method解决方案!
ssh项目出现Bean property 'xxx' is not writable or has an invalid setter method 的解决方案
132 0
阅读SSH项目之ERP(二)
本博文主要是记录我阅读过的SSH项目所学习到的知识,并不是相关系列教程。该SSH项目的gitHub地址:ERP项目地址
129 0
阅读SSH项目之ERP(一)
本博文主要是记录我阅读过的SSH项目所学习到的知识,并不是相关系列教程。该SSH项目的gitHub地址:ERP项目地址
74 0
git拉取项目时创建.ssh文件,并形成公钥和私钥,设置到Github上
git拉取项目时创建.ssh文件,并形成公钥和私钥,设置到Github上
108 0
Maven整合SSH项目(六)下
Maven整合SSH项目(六)
105 0
Maven整合SSH项目(六)中
Maven整合SSH项目(六)
75 0
Maven整合SSH项目(六)上
Maven整合SSH项目(六)
100 0
Oracle 数据库-服务器端字符集查看方法
Oracle 数据库-服务器端字符集查看方法
115 0
jenkins使用Publish over SSH发布maven项目
jenkins使用Publish over SSH发布maven项目
173 0
SSH、SSM项目在没有使用maven的情况下,使用tomcat 启动
tomcat 使用,老项目在没有使用maven的情况下
1182 0
Git如何生成多个ssh key添加到ssh-agent管理项目
生成新的ssh密钥 ssh-keygen -t rsa -b 4096 -C "your@example.com" 不要一直回车键,输入新的名称 id_rsa_new Enter a file in which to save the key (/Users/you/.
2284 0
+关注
广贤
文章
问答
视频
相关电子书
更多
迁移 ORACLE 最佳实践
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关镜像