----------------------------------------------------两种为hql设置参数的万能方法---------------------------------------------------------------------
1. ?占位符方式
2. publicListgetList(String hql, String[] params) {
3. Session session = getSession();
4. Queryquery= null;
5. try{
6.
7. query= session.createQuery(hql);
8. if(params!=null)
9. {
10. for(inti=0;i<params.length;i++) {
11. query.setString(i, params[i]);
12. }
13. }
14. Listlist=query.list();
15. if(list!=null&&list.size()!=0){
16.
17. returnlist;
18.
19. }
20.
21. } catch(Exception e) {
22. e.printStackTrace();
23. return null;
24. } finally{
25. try{
26. if(session != null&& session.isOpen()) {
27. closeSession();
28. }
29. } catch(Exception e) {
30. e.printStackTrace();
31. }
32. }
33. return null;
34. }
二.:参数名方式
publicListqueryList(String strHql, String[] paraName, Object[] paraValue, intpageNum, intnumPerPage)
{
Session session = null;
Transaction tx = null;
ListretList = null;
try{
session = getSession();
tx = session.beginTransaction();
Query q = session.createQuery(strHql);
if(paraValue.length>0 && paraValue.length== paraName.length)
{
for(inti=0; i<paraValue.length; i++)
{
if(strHql.indexOf(":"+ paraName[i]) != -1)
q.setParameter(paraName[i], paraValue[i]);
}
}
if(pageNum != 0 && numPerPage != 0) {
q.setFirstResult((pageNum - 1) * numPerPage);
q.setMaxResults(numPerPage);
}
if(q.list() != null&& q.list().size() != 0) {
retList = q.list();
}
tx.commit();
q = null;
}
catch(HibernateException e)
{
try{
tx.rollback();
} catch(HibernateException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
finally
{
try{
closeSession();
} catch(HibernateException e) {
e.printStackTrace();
logger.error("Close sf session failed ....by message "+ e.getMessage());
}
tx = null;
session = null;
}
returnretList;
}
分享到:
相关推荐
2. **findByNamedParam(String queryString, String[] paramName, Object[] value)**:此方法接受一个包含多个命名参数的HQL字符串及对应的参数名数组和值数组作为参数,返回符合条件的结果列表。 - 示例代码: ``...
在本文中,我们将讨论如何在HQL语句中使用in关键字带参数的写法,以及解决相关问题的方法。 一、HQL语句in中带参数的写法 在HQL语句中,使用in关键字可以实现集合参数的传递,例如: ```java String hql = "FROM ...
HQL(Hibernate Query Language)是Hibernate框架提供的一种查询语言,它基于SQL标准,但更加强调面向对象的特点。在实际应用开发中,HQL被广泛用于数据检索、更新等操作。下面将详细介绍HQL语言中的一些常用的方法...
4. **设置参数**: 如果HQL中有参数,可以通过`setXxx`方法(如`setString`, `setDate`等)为参数赋值。 5. **执行查询**: 调用Query对象的`list`方法执行查询,获取查询结果列表。 6. **遍历结果**: 使用迭代器...
`setFirstResult(int firstResult)` 方法用来设置从哪一条记录开始获取,其参数值为起始索引,注意索引是从0开始的。而`setMaxResults(int maxResults)` 方法则用于设置一次最多获取多少条记录。例如,如果我们想...
1、掌握Hibernate框架应用项目 2、学习HQL参数查询和Criteria查询 3、比较HQL和Criteria的不同 建立web项目,通过页面查询构造动态查询语句,struts2和hibernate框架整合。
1. **find(String queryString)**: 这是最基础的HQL查询方法,接受一个HQL语句作为参数,返回所有匹配该查询的实体对象。例如,"from bean.User"会返回所有的User对象。 2. **find(String queryString, Object ...
HQL语句 HQL语句 HQL语句 HQL语句 HQL语句
Hibernate的分页实现主要在`org.hibernate.query.Query`类中,`setFirstResult()`和`setMaxResults()`方法最终会转化为对应的SQL语句。对于不同的数据库,Hibernate会生成适配的分页SQL。例如,对于MySQL,会生成...
Hql PPt Hql PPt
HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的数据检索方式,使开发人员能够更高效地与数据库交互。本文将详细介绍HQL的基本用法及高级特性。 #### 1. 查询所有记录(Select) ...
在第一个示例中,我们看到一个名为 `findPerson` 的方法,该方法执行了一个 HQL 查询来查找满足特定条件的人。这里的 HQL 语句为: ```java "from syidt.modules.grp.basegrp.persistence.Person as person where ...
4. **设置参数**:如果HQL中包含参数,如上面的例子中的`:eventTitle`,可以通过`Query`对象的`setXxx`方法(如`setString`)为它们赋值。 5. **执行查询并处理结果**:最后,调用`Query`对象的方法(如`list`)执行...
4. **设置参数**:如果HQL语句中含有参数,则需要通过Query对象的`setXxx`方法为这些参数赋值。 5. **执行查询并遍历结果**:最后调用Query对象的`list`方法或其他相关方法来执行查询并遍历查询结果。 #### 三、HQL...
HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以一种类似于SQL但更接近于面向对象的方式来编写查询。本文将详细介绍HQL中的实体查询,并提供一些实际应用场景。 ##### 示例:TUser 类 ...
4. **设置参数**:如果HQL语句中包含参数,需调用Query对象的`setXxx`方法为其赋值。 5. **执行查询并处理结果**:最后,通过调用Query对象的`list`等方法,获取查询结果并进行后续处理。 #### 三、HQL语法示例...
1. **参数解释**:`@param hql`注释表示此方法接收一个名为`hql`的参数,该参数是HQL查询语句。 2. **HQL查询执行**:在方法体内部,首先通过`HibernateUtil.getSession()`获取到一个`Session`实例,这是Hibernate...
不喜欢使用myEclipse的朋友可以尝试下 最近在项目中使用Hibernate,由于需要使用HQL,找了很多资料,大都是MyEclipse中自带的HQL工具。...工具很好用,可以识别出HQL文的语法正确,并且解析为标准SQL语句。