public void testHibernate(){
YourDAOName a = new YourDAOName();
a.findByParameters(new String[]{"param1","param2"},new Object[]{"value1","value2"});
}
/**
* 实现单表的查询
* @param paraNames 列名对应的pojo类属性名
* @param paraValues 列名对应的值
* @param pojoName hibernate映射类名
* @return
*/
public List findByParametersAndPojoName(String[] paraNames,Object[] paraValues,String pojoName){
StringBuffer hql = new StringBuffer();
log.debug(Arrays.asList(paraNames));
log.debug(Arrays.asList(paraValues));
hql.append(" from "+pojoName+" where ");
for(int i=0;i<paraNames.length;i++){
hql.append(paraNames[i]+" = :"+paraNames[i]);
if(i<paraNames.length-1) hql.append(" and ");
}
log.debug("hql=========="+hql.toString());
Query query = session.createQuery(hql.toString());
for(int i=0;i<paraNames.length;i++){
query.setParameter(paraNames[i], paraValues[i]);
}
List list = query.list();
log.debug("list.size()===="+list.size());
return list;
}
分享到:
相关推荐
总的来说,Hibernate的`Criteria`、`Query`以及QBC(Query By Criteria)提供了灵活且强大的查询手段,它们不仅支持基本的单表查询,还能处理复杂的联表、分页、参数绑定和统计需求,是Java开发者进行数据库操作的...
- **命名参数:** 推荐使用命名参数的方式传递值,如上述示例中的`"name"`,这种方式使得代码更具可读性。 - **易于维护:** 由于HQL的面向对象特性,使得它更容易理解和维护。 - **局限性:** HQL只适用于Hibernate...
1. **创建Query对象**:首先,需要通过Session对象的`createQuery()`方法创建Query对象,并将HQL查询语句作为参数传递。例如,查询所有Students对象时,代码如下所示: ```java Query query = session....
在这个类中,我们可以通过编写Hibernate HQL或SQL查询语句来实现分页查询。 4. **Struts2 Action** 在Action类中,我们需要处理来自用户的请求参数,如当前页码和每页显示记录数等,并调用DAO中的分页查询方法获取...
在分页查询中,Struts通常会负责接收用户的请求参数(如页码、每页数量),然后调用业务逻辑层的方法,最后将结果传递给JSP页面进行显示。 **Hibernate框架** 是一个流行的ORM框架,它可以将数据库操作转换为面向...
通过配置文件和注解,Hibernate可以自动将Java对象映射到数据库表,实现对象的保存、更新、删除和查询。在这个例子中,Hibernate可能会被用来定义实体类,配置映射文件,并编写SQL查询语句,以便从数据库中检索数据...
在前端,可以通过Struts2的Action传递这些参数,并在JSP页面上展示分页链接。 搜索功能通常涉及到条件查询,可以利用Hibernate3的Criteria API或者HQL动态构造查询语句,根据用户输入的关键词匹配数据库中的记录。...
Hibernate通用查询是Java开发中非常重要的一个概念,它极大地简化了数据库操作,使得开发者无需编写大量的SQL语句,即可实现复杂的数据查询。本知识点主要围绕Hibernate的通用查询功能展开,包括其基本原理、优势...
6. **单表增删改查**:对于单个表的操作,如查询所有记录、添加新记录、修改已有记录和删除记录,可以通过定义不同的Action方法来实现。这些方法通常会调用SessionFactory的`openSession()`方法创建Session,执行...
Controller接收到这些参数后,将它们传递给Service层,Service层再利用这些参数来构建Hibernate的Criteria或HQL(Hibernate Query Language)查询,以执行特定的数据库查询。 Hibernate的Criteria查询允许我们动态...
- **使用自定义参数类**:可以使用自定义的参数类来传递查询参数,例如上面提到的 `Paras` 类。 ```java public class Paras { private Object pName; private int typeNo; public Object getPName() { ...
在`getUser(int offset, int length)`方法中,我们构建HQL(Hibernate Query Language)查询语句,从User表中选取所有记录。使用Session的`createQuery(String hql)`方法创建Query对象,然后设置查询参数,通过`...
本篇将介绍如何使用Struts和Hibernate框架来实现Web应用中的分页功能。 首先,Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它负责处理用户请求并控制应用程序的流程。而Hibernate则是一...
总的来说,"HibernateHQL实现前台翻页"涵盖了JavaWeb开发中的ORM查询、MVC模式应用、参数处理、视图渲染以及数据库优化等多个方面。理解并熟练掌握这些知识点,对于开发高效、安全的Web应用至关重要。
为了实现分页,我们需要使用到Hibernate的Criteria查询或HQL(Hibernate Query Language)。这里我们用Criteria API举例: ```java public List<Student> findByPage(int page, int pageSize) { Session session =...
5. 搜索与筛选:提供关键字搜索微博或按时间、地点等条件筛选功能,这涉及到SQL查询优化和Struts2的参数传递。 6. 异步处理:如使用Ajax实现动态加载评论,提高用户体验。 7. 安全性:防止SQL注入和跨站脚本攻击,...
接着,定义了一个分页查询的接口`IPageModelDao.java`,它声明了一个`queryPage`方法,接收HQL(Hibernate Query Language)查询语句、当前页数和每页记录数作为参数,返回一个`PageModel`对象。这个接口定义了分页...
### Struts + Hibernate 分页与模糊...通过上述介绍,我们了解了如何使用Struts结合Hibernate实现分页查询和模糊查询。这些技术在实际项目中非常实用,能够极大地提高用户体验并减少服务器负载。希望本文对你有所帮助。
在Hibernate中,使用setParameter方法可以将参数传递给HQL语句。该方法可以传递单个参数,也可以传递集合参数。但是,需要注意的是,当传递集合参数时,需要使用setParameterList方法,而不是setParameter方法。 ...
同时,还需要显示当前页数、总页数、跳转到第几页等功能,这通常涉及到传递参数如当前页码给Action,然后在Action中计算这些信息。 Myeclipse作为开发环境,提供了集成的开发、调试和部署支持,方便我们进行项目...