`
shirlly
  • 浏览: 1652592 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

HQL实践总结

 
阅读更多
/**
	 * 依据HQL语句和参数数组做HQL查询
	 * @param queryString hql查询语句
	 * @param parameters  查询参数数组(null表是无参数)
	 * @return
	 */
	protected List findByHqlQuery(final String queryString, final Object[] parameters) {
		if(null==parameters){
			return getHibernateTemplate().find(queryString);
		}else{
			return getHibernateTemplate().find(queryString, parameters);
		}
	}
	/**
	 * 根据传入的HQL和参数集执行更新
	 * @param queryString
	 * @param parameters
	 */
	protected void updateByQuery(final String queryString, final Object[] parameters) {
		getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session session) {
				Query query = session.createQuery(queryString);
				if (parameters != null) {
					for (int i = 0; i < parameters.length; i++) {
						query.setParameter(i, parameters[i]);
					}//--setParam
				}
				query.executeUpdate();
				session.flush();
				return null;
			}
		});
	}
	/**
	 * 根据传入的HQL和参数集执行更新
	 * @param queryString
	 * @param parameters
	 */
	protected void updateBySQLQuery(final String queryString, final Object[] parameters) {
		getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session session) {
				Query query = session.createSQLQuery(queryString);
				if (parameters != null) {
					for (int i = 0; i < parameters.length; i++) {
						query.setParameter(i, parameters[i]);
					}//--setParam
				}
				query.executeUpdate();
				session.flush();
				return null;
			}
		});
	}
	/**
	 * 根据传入的HQL和参数集执行删除
	 * @param queryString
	 * @param parameters
	 * @return Integer 删除的列数
	 */
	protected Integer deleteByQuery(final String queryString, final Object[] parameters) {
		return (Integer) getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session session) {
				Query query = session.createQuery(queryString);
				if (parameters != null) {
					for (int i = 0; i < parameters.length; i++) {
						query.setParameter(i, parameters[i]);
					}
				}
				int rowNum = query.executeUpdate();
				session.flush();
				return new Integer(rowNum);
			}
		});
	}


常用的Hql语句
1)更新多个字段的值
update InOutAccount i set i.stateCode=? ,i.checkDate=? ,i.checkOperator=? where i.operNumber=?
分享到:
评论

相关推荐

    hql语句经典教程

    【HQL语句经典教程】 Hibernate Query Language(HQL)是Hibernate框架提供的面向对象的查询语言,它在外观上类似于SQL,但具有显著的面向对象特性,...在实践中,应根据具体需求选择适当的查询策略,以达到最佳效果。

    HQL语句大全

    - **推荐实践**:在手册中,HQL关键字通常使用小写字母。为了提高代码的可读性,许多开发者倾向于使用完全大写的关键词,但在Java代码中嵌入HQL时,这种方式可能看起来不太协调。 #### 三、FROM子句 - **基本形式**...

    SSh sql/hql 分页

    ### SSh sql/hql 分页知识点解析 ...对于初学者而言,理解这些基本概念并实践代码是非常重要的学习过程。同时,也需要注意避免简单复制代码而不理解其背后的原理,这样才能更好地掌握分页技术并应用于实际项目中。

    hibernate3.2.5

    总结,解决“Update queries only supported through HQL”的关键在于理解和掌握Hibernate的HQL更新查询,以及充分利用其面向对象的特性。通过使用Hibernate 3.2.5版,开发者能够更加高效、安全地进行数据操作,提高...

    Java语言基础下载

    内容总结 13 独立实践 14 第二章: 面向对象概述 15 学习目标 15 面向对象(Object Oriented) 16 面向对象的主要特性 18 抽象(Abstraction) 18 封装(Encapsulation): 19 多态(Polymorphism) 20 面向对象的优点 22 ...

    hibernate 实践 Query详解

    总结来说,这个实践主要涵盖了Hibernate的Query接口的使用,包括HQL查询的编写、参数绑定以及事务管理。理解并熟练运用这些知识,对于进行基于Hibernate的数据库操作至关重要。在实际开发中,开发者需要根据业务需求...

    学习hibernate必看ppt--总结的很全面

    【标题】:“学习hibernate必看ppt--总结的很全面” 这个标题表明这是一个关于Hibernate框架的综合学习资料,特别适合初学者或者需要深入理解Hibernate的开发者。它可能包含了一系列PPT,旨在全面概述Hibernate的...

    SparkSQL原理和实践

    #### 五、总结 SparkSQL通过提供高效的数据处理能力和易于使用的编程接口,在大数据处理领域具有显著的优势。相较于Hive,SparkSQL不仅在性能上有所提升,而且在实时性和易用性方面也表现出色,这使其成为现代大数据...

    一次hibernate的优化实践

    - 使用HQL(Hibernate Query Language)或Criteria API代替直接SQL,以利用Hibernate的内部优化。 - 避免N+1查询问题,通过一次性加载关联对象或者使用JOIN查询来减少多次数据库访问。 - 使用投影(Projection)...

    Hibernate4(事务,原理,性能和二级缓存,最佳实践).pdf

    - **优化查询**:编写高效的 HQL 或 JPQL 查询,避免不必要的 N+1 问题。 - **懒加载**:对于一对多或多对多关系,使用懒加载机制可以减少初始加载时的数据量。 **最佳实践**: - **事务管理**:确保在适当的层次...

    最的hibernate教程从入门到精通第4篇共四篇PPT学习教案.pptx

    总结来说,这个教程的第四部分详细介绍了如何使用 Hibernate 进行各种查询操作,包括 HQL 的基本语法、参数化查询以及安全最佳实践。通过这些内容的学习,开发者可以更加熟练地运用 Hibernate 处理数据库操作,提升...

    Hibernate课程的总结

    **九、最佳实践** 1. 避免过多的HQL子查询,优化查询结构。 2. 使用预编译的SQL(Query.setParameters())以提高性能。 3. 合理设计实体关系,避免循环引用导致的懒加载问题。 4. 使用事务管理,确保数据一致性。 ...

    ssh框架总结_ ssm心得体会-Java文档类资源

    Hibernate支持多种数据库,如MySQL、Oracle等,并且提供了SQL查询语言HQL(Hibernate Query Language)。 在实际项目中,SSH框架的使用通常包括以下几个步骤: 1. **配置环境**:引入相关的jar包,包括Spring、...

    基于hive的性能优化方法的研究与实践

    【基于Hive的性能优化方法的研究与实践】 随着网络信息处理市场的快速发展和数据量的急剧增长,大数据处理技术,特别是基于Hadoop的分布式计算处理技术,已成为工程研究的重点。Hadoop以其可扩展性和高容错性,被...

    Hibernate实践 DB操作

    本文旨在总结作者在使用Hibernate过程中的实践经验,并分享一些技巧和心得,希望能够对初次接触或正在学习Hibernate的开发者有所帮助。 #### 二、基础知识 ##### 2.1 库文件配置 在使用Hibernate之前,首先需要...

    运营商行业智能化机器学习平台建设实践.pdf

    1. 提炼常用的建模情景分析、归纳运营商常用建模场景使用的算法,总结出5大类向导式的建模流程固化到平台中,包括分类预测、聚类分析、协同过滤、时间序列、关联规则。 2. 建模流程中,初级用户只需选择数据的标识...

    物流实时大数据的探索与实践.pptx

    总结来说,物流实时大数据的探索与实践是通过构建实时技术架构和优化数据存储方案,实现了物流订单的高效监控、异常检测和快速响应,从而提升了整个物流行业的运营效率和服务水平。这一过程中,关键的技术包括实时...

    ssh框架学习总结

    Hibernate支持多种数据库,具有缓存机制、事务管理和查询语言HQL,为数据库操作提供了便利。 在学习SSH框架的过程中,你可能会接触到以下知识点: 1. Spring的IoC容器:理解如何通过Bean定义和依赖注入来管理对象...

    Hibernate学习心得

    在IT行业中,Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑,而不是底层的数据存取细节。...在实践过程中不断总结和反思,是提升技术水平的关键。

Global site tag (gtag.js) - Google Analytics