`
yzz9i
  • 浏览: 221499 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论
阅读更多
	public Map searchFlightChangeInfoFenye(Map paramMap);


    
	/**
	 * flightInfo search  航班信息搜索控制
	 * */
	public ActionForward flightInfoSearch(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
	    
		//得到搜索提供的参数
	
		String pageString=request.getParameter("page");
		int page=1;
		if (pageString!=null) {
			page=Integer.parseInt(pageString);
			int size=3;
			
			
			String passenger=request.getParameter("passenger"); //乘客姓名
			String Passenger=null;
			if (passenger.length()>0) {
				Passenger=passenger;
			}
			
			String flightNo=request.getParameter("flightNo"); //航班号
			String FlightNo=null;
			if (flightNo.length()>0) {
				FlightNo=flightNo;
			}
			
			String ticketNo=request.getParameter("ticketNo"); //票号
			String TicketNo=null;
			if (ticketNo.length()>0) {
				TicketNo=ticketNo;
			}
			
			String ticket_All=request.getParameter("ticket_All"); //总票
			String Ticket_All=null;
			if (ticket_All.length()>0) {
				Ticket_All=ticket_All;
			}
			
			String takeOff_time=request.getParameter("takeOff_time"); //起飞时间
			String TakeOff_time=null;
			if (takeOff_time.length()>0) {
				TakeOff_time=takeOff_time;
			}
			
			String input_time=request.getParameter("input_time"); //输入时间
			String Input_time=null;
			if (input_time.length()>0) {
				Input_time=input_time;
			}
			
			String input_time02=request.getParameter("input_time02"); //输入时间至
			String Input_time02=null;
			if (input_time02.length()>0) {
				Input_time02=input_time02;
			}
			
			Map paramsMap=new HashMap();
			paramsMap.put("page", page);
			paramsMap.put("size", size);
			paramsMap.put("Passenger", Passenger); //乘客姓名
			paramsMap.put("FlightNo", FlightNo); //航班号
			paramsMap.put("TicketNo", TicketNo); //票号
			paramsMap.put("Ticket_All", Ticket_All); //总票款
			paramsMap.put("TakeOff_time", TakeOff_time); //起飞时间
			paramsMap.put("Input_time", Input_time); //导入时间
			paramsMap.put("Input_time02", Input_time02); //导入时间至
			
			Map flightMap=iflightInfoService.flightInfoSearchFenye(paramsMap); 
			
			request.setAttribute("flightMap", flightMap);
			
		}
		/*int flag=Integer.parseInt(request.getSession().getAttribute("lim").toString());
		   System.out.println("fffffffffffffffffffffffffffff");
		   System.out.println(flag);
		   if (flag==1) {
				return new ActionForward("/flight_info_1.jsp");
			}else if (flag==2) {
				return new ActionForward("/flight_info_2.jsp");
			}else if (flag==3) {
				return new ActionForward("/flight_info_3.jsp");
			}*/
		return new ActionForward("/flight_info.jsp");
	}
	
	
	


public Map searchFlightChangeInfoFenye(Map paramMap) {
		// TODO Auto-generated method stub
		
		// 第几页
		Integer page = (Integer) paramMap.get("page");
		System.out.println("page--="+page);
		Integer size = (Integer) paramMap.get("size");
		
		//公司名称
		String voyage_company=(String) paramMap.get("voyage_company");
		System.out.println("voyage_company:"+voyage_company);
		//操作人名称
		String handlerString=(String) paramMap.get("handler");
		
		
		//手机号码
		String receive_cellphoneString=(String) paramMap.get("receive_cellphone");
		
		//状态
		int flight_state= -1;  
		String flight_stateString=(String) paramMap.get("flight_state");
		if (flight_stateString!=null && flight_stateString.length()>0) {
			flight_state=Integer.parseInt(flight_stateString);
		}
		
		//操作时间
		System.out.println("paramMap-------------:"+paramMap.get("handle_time"));//("(String) paramMap.get("handle_time"):"+(String) paramMap.get("handle_time"));
		String handle_timeString= (String) paramMap.get("handle_time");
		System.out.println("-----------------------");
	    Date handle_time=null;
		if (handle_timeString!=null ) {
			handle_time=java.sql.Date.valueOf(handle_timeString);//handle_timeString;
			System.out.println("handle_time==="+handle_time);
		}
		
		//接受时间开始
		String accept_timeString=(String) paramMap.get("accept_time");
		Date accept_time=null;
		if (accept_timeString!=null) {
			accept_time=java.sql.Date.valueOf(accept_timeString);
			System.out.println("accept_time==="+accept_time);
		}
		
		//接受时间结束
		String accept_time02String=(String) paramMap.get("accept_time02");
		Date accept_time02=null;
		if (accept_time02String!=null) {
			accept_time02=java.sql.Date.valueOf(accept_time02String);
			System.out.println("accept_time02==="+accept_time02);
		}
		
		//拼hql ----按条件追加------------------------------------------------
		
		String hqlcount="select count(*) from TbFlightChangeInfo where 1=1 ";
		String hqlString="from TbFlightChangeInfo where 1=1 ";
        System.out.println("]]]]]]]]]]]");
        
        //定义数组接收查询参数
		List values=new ArrayList();
		
		//判断公司名称是否具备例如查询条件
		if (voyage_company!=null && voyage_company.length()>0) {
			hqlString=hqlString+" and voyageCompany like ? ";
			hqlcount=hqlcount+" and voyageCompany like ? ";
			values.add(voyage_company+"%");
		}
		//判断操作者是否具备例如查询条件
		if (handlerString !=null && handlerString.length()>0) {
			hqlString=hqlString+" and handler=?";
			hqlcount=hqlcount+" and handler=?";
			values.add(handlerString);
		}
		//判断输入手机号码是否具备例如查询条件
		if (receive_cellphoneString !=null && receive_cellphoneString.length()>0) {
			hqlcount=hqlcount+" and receiveCellphone=? ";
			hqlString=hqlString+" and receiveCellphone=? ";
			values.add(receive_cellphoneString);
		}
		//判断状态是否具备例如查询条件
		if (flight_state != -1) {
			hqlString=hqlString+" and flightState=? ";
			hqlcount=hqlcount+" and flightState=? ";
			values.add(flight_state);
		}
		//判断操作时间是否具备例如查询条件
		if (handle_time!=null) {
			hqlString=hqlString+" and handleTime=?";
			hqlcount=hqlcount+" and handleTime=?";
			values.add(handle_time);
		}
		//判断接收时间是否具备例如查询条件
		if (accept_time!=null && accept_time02!=null) {
			hqlString=hqlString+" and receiveTime between ? and ?";
			hqlcount=hqlcount+" and receiveTime between ? and ?";
			values.add(accept_time);
			values.add(accept_time02);
		}
		else if (accept_time!=null && accept_time02==null) {
			hqlString=hqlString+" and receiveTime >= ?";
			hqlcount=hqlcount+" and receiveTime >= ?";
			values.add(accept_time);
			
		}
		else if (accept_time==null && accept_time02!=null) {
			hqlString=hqlString+" and receiveTime <= ?";
			hqlcount=hqlcount+" and receiveTime <= ?";
			values.add(accept_time02);
		}
		
		System.out.println("hqlString:"+hqlString);
		//设问号 ------------------------------------------------------
		
		Query query=getSession().createQuery(hqlString);
		Query queryCount=getSession().createQuery(hqlcount);
		
		if (values.size()>0) {
			System.out.println("values.size()"+values.size());
			for (int i = 0; i < values.size(); i++) {
				queryCount.setParameter(i,values.get(i));
				query.setParameter(i,values.get(i));
				
			}
			
		}
		/*String hql2="from TbFlightChangeInfo";
		List list0= getHibernateTemplate().find(hql2);
		System.out.println("query2.uniqueResult():"+list0.size());*/
		//总条数
	//	List sumList=getHibernateTemplate().find(hql2);
	//	int sum=sumList.size();
		Object countObject =queryCount.uniqueResult();
		int sum = Integer.parseInt(countObject.toString());
		System.out.println("sum:"+sum);
		//总页数
		int count=sum%size==0?sum/size:sum/size+1;
		System.out.println("count:"+count);
		//越界检查
		if (page<1) {
			page=1;
		}
		if (page>count) {
			page=count;
		}
		
		
		//查
		query.setFirstResult((page-1)*size).setMaxResults(size);
		List list=query.list();
		
		//保存至map
		Map resultMap=new HashMap();
		resultMap.put("list",list);
		resultMap.put("page",page);
		resultMap.put("size",size);
		resultMap.put("count",count);
		resultMap.put("sum",sum);
		
		return resultMap;
	}



分享到:
评论

相关推荐

    HQL查询pdf资料

    HQL也支持`WHERE`子句,用于添加过滤条件。例如: ```java String hql = "FROM User user WHERE user.age = 20"; ``` HQL支持多种表达式和操作符,包括但不限于`BETWEEN`、`IN`、`IS NULL`、`LIKE`等,这使得HQL...

    HQL查询及语法

    ### HQL查询及语法详解 #### 一、HQL简介 HQL,全称为Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言。它基于SQL标准,但更加强调对象模型,支持Java中的对象关系映射(ORM),能够处理...

    HQL查询.ppt

    HQL查询 帮助文档

    NHibernate HQL 条件查询

    在探讨NHibernate HQL条件查询时,我们首先要理解NHibernate框架以及HQL(Hibernate Query Language)的基本概念。NHibernate是一个开放源代码的对象关系映射(ORM)解决方案,它为.NET平台提供了一种将对象模型与...

    hibernateHQL关联查询

    ### Hibernate HQL 关联查询详解 #### 一、引言 在进行数据库操作时,关联查询是必不可少的一部分,尤其在处理复杂的数据结构时更是如此。Hibernate作为一种流行的Java持久层框架,提供了强大的对象关系映射(ORM...

    SSH笔记-HQL查询、QBC、本地SQL查询

    SSH笔记-HQL查询(基于位置参数查询、基于命名参数查询、分页查询、命名查询、投影查询报表查询、内/迫切内/左外/迫切左外连接查询)、QBC(QBC检索查询、统计查询、排序查询、HQL操作数据库)、本地SQL查询

    JPA--HQL查询(手动写原生查询sql,复杂查询必备).pdf

    在 HQL 查询中,需要定义查询语句,可以使用字符串拼接的方式动态生成查询语句,例如,使用 if 语句判断条件是否存在,然后将条件添加到查询语句中。最后,使用 GROUP BY 子句对查询结果进行分组。 在查询结果处理...

    HQL查询语言基础知识

    HQL 查询语言基础知识 HQL(Hibernate Query Language)是一种面向对象的查询语言,用于在 Hibernate 框架中查询数据库。HQL 查询语言基础知识是 Hibernate 中的基础组件之一,对于开发人员来说,掌握 HQL 查询语言...

    Spring中常用的hql查询方法

    这对于简单的条件查询非常有用。 **示例代码**: ```java List&lt;User&gt; userList = this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); ``` 或进行模糊查询: ```java List&lt;User&gt; user...

    HibernateUtil分装完整版HQL查询

    例如,你可以通过HQL轻松地查询所有用户或按条件过滤用户。 **使用HibernateUtil执行HQL** 1. **初始化HibernateUtil** HibernateUtil通常在应用启动时初始化SessionFactory。这涉及到配置hibernate.cfg.xml文件...

    Hibernate之HQL查询

    WHERE子句用于设置查询条件,支持比较运算符(=, !=, &lt;, &gt;, , &gt;=)、逻辑运算符(AND, OR, NOT)以及空值判断(IS NULL, IS NOT NULL)。例如: ```sql SELECT p FROM Product p WHERE p.status = 'active' AND p....

    Hibernate HQL查询 分页查询 模糊查询.docx

    ### Hibernate HQL 查询详解 #### 一、HQL(Hibernate Query Language)简介 HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得...

    hibernate hql各类查询范例

    在第一个示例中,我们看到一个名为 `findPerson` 的方法,该方法执行了一个 HQL 查询来查找满足特定条件的人。这里的 HQL 语句为: ```java "from syidt.modules.grp.basegrp.persistence.Person as person where ...

    hql模糊查询hql模糊查询

    这种方式将查询条件直接拼接到HQL字符串中,虽然看起来更为简洁,但在安全性方面可能存在隐患,因为这容易导致SQL注入攻击。因此,在实际开发中应尽量避免直接拼接字符串的方式,而是采用参数绑定的方式。 ### 示例...

    HQL查询语言基础.

    **HQL查询语言基础** HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的查询语言,它与SQL类似,但专为面向对象编程设计。HQL允许开发者以类和对象的方式编写查询,而不是直接处理...

    hql查询多个实体类,类之间没有外键关联

    hql查询多个实体类,类之间有外键关系,但是没有外键关联

    HQL是hibernate自己的一套查询

    与传统的SQL语言不同,HQL更加注重于面向对象的特性,它支持Java类名和属性名作为查询条件,使得开发者可以直接使用Java对象模型来编写查询语句,而不需要了解底层数据库的具体表结构。HQL的这种特性大大提高了代码...

    hql多表查询

    在IT领域,特别是数据库操作与查询中,HQL(Hibernate Query Language)作为一种强大的查询语言,被广泛应用于基于Hibernate框架的数据访问层。HQL允许开发者使用类似SQL的语法进行数据库操作,但更贴近于面向对象的...

Global site tag (gtag.js) - Google Analytics