`
ludaojuan21
  • 浏览: 224133 次
  • 性别: Icon_minigender_1
  • 来自: 回龙观
社区版块
存档分类
最新评论

SSH综合查询的两种方式

阅读更多
方法1:直接用ORACLE方言函数进行比较
//综合查询
	public List getOpeRecsByCon1(HttpServletRequest request){
		log.debug("finding OpeRecords instances by Condition");
		try {
			
			String factoryId = "";
			String spciltyId = "";
			String dutyId = "";
			String classId = "";
			factoryId = request.getParameter("factoryId");
			spciltyId = request.getParameter("spciltyId");
			dutyId = request.getParameter("dutyId");
			classId = request.getParameter("classId");
			
			StringBuffer queryString = new StringBuffer();
			queryString.append("from OpeRecords o where 1=1");
			
			//如果选择了运行单位和专业
			if((factoryId.length()!=0)&&(spciltyId.length()!=0)){
				queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.runfactory='"+factoryId+"' and a.specialtyid='"+spciltyId+"')");
			}
			
			//如果仅仅选择了运行单位
			if((factoryId.length()!=0)&&(spciltyId.length()==0)){
				queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.runfactory='"+factoryId+"')");
			}
			
			//如果仅仅选择了专业
			if((factoryId.length()==0)&&(spciltyId.length()!=0)){
				queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.specialtyid='"+spciltyId+"')");
			}
			
			//如果选择了班次
			if(dutyId.length()!=0){
				queryString.append(" and o.dutyid='"+dutyId+"'");
			}
			
			//如果选择了值别
			if(classId.length()!=0){
				queryString.append(" and o.classid='"+classId+"'");
			}
			
			String startTimeStr = request.getParameter("startTime");
			String endTimeStr = request.getParameter("endTime");
			
			if(startTimeStr!=null&&!startTimeStr.equals("")){
				queryString.append(" and o.gettime >to_date('"+startTimeStr+"','yyyy-MM-dd HH24:mi:ss')");
			}else if(endTimeStr!=null&&!endTimeStr.equals("")){
				queryString.append(" and o.gettime <to_date('"+endTimeStr+"','yyyy-MM-dd HH24:mi:ss')");
			}else if(startTimeStr!=null&&!startTimeStr.equals("")&&endTimeStr!=null&&!endTimeStr.equals("")){
				queryString.append(" and o.gettime >to_date('"+startTimeStr+"','yyyy-MM-dd HH24:mi:ss')");
				queryString.append(" and o.gettime <to_date('"+endTimeStr+"','yyyy-MM-dd HH24:mi:ss')");
			}
			return getHibernateTemplate().find(queryString.toString());
		} catch (RuntimeException re) {
			log.error("find all failed", re);
			throw re;
		}
	}
	


方法2:使用占位符对对象进行比较
	
//综合查询
	public List getOpeRecsByCon2(HttpServletRequest request){
		log.debug("finding OpeRecords instances by Condition");
		try {
			
			String factoryId = "";
			String spciltyId = "";
			String dutyId = "";
			String classId = "";
			factoryId = request.getParameter("factoryId");
			spciltyId = request.getParameter("spciltyId");
			dutyId = request.getParameter("dutyId");
			classId = request.getParameter("classId");
			
			StringBuffer queryString = new StringBuffer();
			queryString.append("from OpeRecords o where 1=1");
			
			//如果选择了运行单位和专业
			if((factoryId.length()!=0)&&(spciltyId.length()!=0)){
				queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.runfactory='"+factoryId+"' and a.specialtyid='"+spciltyId+"')");
			}
			
			//如果仅仅选择了运行单位
			if((factoryId.length()!=0)&&(spciltyId.length()==0)){
				queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.runfactory='"+factoryId+"')");
			}
			
			//如果仅仅选择了专业
			if((factoryId.length()==0)&&(spciltyId.length()!=0)){
				queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.specialtyid='"+spciltyId+"')");
			}
			
			//如果选择了班次
			if(dutyId.length()!=0){
				queryString.append(" and o.dutyid='"+dutyId+"'");
			}
			
			//如果选择了值别
			if(classId.length()!=0){
				queryString.append(" and o.classid='"+classId+"'");
			}
			
			String startTimeStr = request.getParameter("startTime");
			String endTimeStr = request.getParameter("endTime");
			
			if((startTimeStr!=null&&!startTimeStr.equals(""))&&(endTimeStr!=null&&endTimeStr.equals(""))){
				Date startTime = StringToDate.StrToDate4yyyyMMddHHmmss(startTimeStr);
				queryString.append(" and o.gettime >?)");
				return getHibernateTemplate().find(queryString.toString(),new Object[]{startTime});
			}else if(endTimeStr!=null&&!endTimeStr.equals("")&&(startTimeStr!=null&&startTimeStr.equals(""))){
				Date endTime = StringToDate.StrToDate4yyyyMMddHHmmss(endTimeStr);
				queryString.append(" and o.gettime <?");
				return getHibernateTemplate().find(queryString.toString(),new Object[]{endTime});
			}else{
				Date startTime = StringToDate.StrToDate4yyyyMMddHHmmss(startTimeStr);
				Date endTime = StringToDate.StrToDate4yyyyMMddHHmmss(endTimeStr);
				queryString.append(" and o.gettime between ? and ?");
				return getHibernateTemplate().find(queryString.toString(),new Object[]{startTime,endTime});
			}
		} catch (RuntimeException re) {
			log.error("find all failed", re);
			throw re;
		}
	}


注:带注释符的是一种方法(使用占位符对对象进行比较),不带注释符是直接用ORACLE方言函数进行比较
分享到:
评论

相关推荐

    SSH综合包,SSH2,SSH综合

    这个综合包包含了SSH的两个主要版本:SSH2和SSH,同时也包括了几个流行的Java框架,如Struts2、Struts1、Hibernate3.2和Spring2.5。这些框架在IT行业中扮演着关键角色,尤其是对于企业级Java应用开发。 1. **SSH2**...

    ssh+other综合知识

    在IT行业中,SSH(Secure Shell)是一种用于网络服务的安全协议,它允许用户通过不安全的网络进行加密的通信。SSH不仅用于远程登录,还可以执行命令、传输文件等。结合"other"标签,我们可以理解这里涉及的"其他...

    面试笔试题加ssh2项目代码

    1. **身份验证**:SSH2提供了公共密钥认证和密码认证两种方式。公共密钥认证中,客户端使用私钥进行身份验证,服务器端用公钥来验证客户端的身份;而密码认证则需要用户输入正确的用户名和密码。 2. **数据加密**:...

    SSH 综合示例

    本文将深入探讨SSH综合示例在实际项目中的应用,以及如何结合Spring3进行积分商城的开发。 首先,Spring框架是SSH的核心,它提供了一种依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...

    sshclient一款实用的后台抓包工具

    标题中的“sshclient”指的是SSH(Secure Shell)客户端,它是一种用于在不安全网络上安全地执行远程命令和传输文件的协议。SSH客户端是连接到SSH服务器的软件,允许用户通过加密连接进行通信,防止数据在传输过程中...

    Java SSH 参考资料

    Java SSH 是一种流行的技术栈,主要由Spring、Struts 和 Hibernate 这三个开源框架组成,用于构建企业级的Java Web应用程序。这些框架分别处理了应用的业务逻辑、表现层和数据持久化,使得开发过程更加模块化和高效...

    SSH框架的优缺点

    2. **配置复杂**:虽然有XML和注解两种配置方式,但大量的配置文件可能会增加项目管理的复杂性。 **三、Hibernate** Hibernate是一个优秀的对象关系映射(ORM)工具,它简化了数据库操作。它的优点包括: 1. **简化...

    SSH实现网上商城

    SSH(Spring、Struts2、Hibernate)是一种常见的Java Web开发框架组合,用于构建高效、可扩展的互联网应用程序,包括网上商城。在这个项目中,Spring作为整体应用的管理和依赖注入容器,Struts2作为表现层框架负责...

    ssh2-0.11.3.tgz

    SSH2(Secure Shell 2)是一种广泛用于网络服务的安全协议,主要用于提供加密网络通信,特别是用于远程登录、文件传输和其他网络服务。tgz是一个常见的归档格式,它是tar和gzip的组合,用于将多个文件打包并压缩成一...

    ssh 框架大作业

    它提供了一种灵活的Action配置方式,支持拦截器、结果类型等多种机制,使得业务逻辑的组织和扩展变得简单。 Spring框架是SSH中的核心,它不仅提供了依赖注入(DI)和面向切面编程(AOP)功能,还包含了众多企业级...

    基于ssh的柱状图代码

    在描述中还提到了饼图和折线图,它们分别是另外两种常见的数据可视化图表。 **SSH基础** SSH是一个网络协议,用于加密网络通信,确保在不安全的网络上进行安全的数据传输。它通常用于远程控制服务器,执行命令,...

    ssh学生信息管理系统

    SSH(Spring、Struts、Hibernate)是Java Web开发中的一种经典组合,被誉为“铁三角”,常用于构建企业级的Web应用程序。本系统“SSH学生信息管理系统”就是基于这一框架实现的,它整合了Spring的强大功能、Struts的...

    SSH+EasyUI权限管理系统

    SSH+EasyUI权限管理系统是一种基于Java技术栈的Web应用程序,用于实现用户权限的精细管理。SSH代表Spring、Struts和Hibernate三个开源框架的首字母缩写,它们是Java Web开发中的核心组件。EasyUI则是一个基于jQuery...

    个人博客系统 ssh2

    SSH2,全称为Struts2、Hibernate和Spring的整合,是一种常见的Java web应用开发框架组合。这个个人博客系统利用SSH2的优势,为开发者提供了一个结构清晰、易于理解和操作的平台,特别适合初学者进行学习和实践。 1....

    信息安全综合实践SSH实验报告及指导.doc

    SSH(Secure Shell)是一种安全的网络协议,用于在不安全的网络环境中提供加密的通信。此实验旨在让学生更深入地理解Linux系统,并体验在Windows和Linux环境下使用SSH进行安全远程登录的过程。实验分为Windows和...

    SSH成绩管理系统

    总的来说,SSH成绩管理系统是一个综合运用了Java企业级开发技术的实例,展示了如何使用Spring、Struts和Hibernate三大框架构建一个完整的Web应用,对于学习Java Web开发的初学者来说,这是一个很好的实践案例。...

    SSH企业资产管理系统

    在本系统中,Hibernate用于管理资产数据的增删改查操作,提供了一种简单且强大的方式来处理数据库交互。 描述中提到,用户可以通过登录注册功能进行系统操作,这是任何企业系统的基本需求。登录注册模块通常包含...

    SSH集成源代码,两表之间多对多关系插入

    在多对多关系的处理上,Hibernate提供了一种便捷的方法,通过中间表来实现两个实体类之间的关联。 在多对多关系中,两个表之间没有直接的外键约束,而是通过一个额外的关联表(也称为中间表或连接表)来建立联系。...

    maven ssh实例

    在Java开发领域,Maven和SSH(Spring、Struts、Hibernate)是两个非常重要的工具和框架。Maven是一个项目管理和综合工具,它帮助开发者管理项目的构建、依赖关系以及报告。SSH则是一种流行的企业级Web应用程序开发...

Global site tag (gtag.js) - Google Analytics