得到结果集的方法:
public Iterator searchUser(String name, String phone, String address) {
String strsql=new String("from Addressbook where ");
if(!name.equals(""))
strsql=strsql+"name like '"+name+"%' and";
if(!phone.equals(""))
strsql=strsql+"phone like '"+phone+"%' and";
if(!address.equals(""))
strsql=strsql+"address like '"+address+"%'";
else
strsql=strsql.substring(0,strsql.length()-3);
strsql=strsql+"order by ID";
System.out.println(strsql);
Query q=this.session.createQuery(strsql);
System.out.println("end");
Iterator iter =q.iterate();
return iter;
}
得到结果集的一个巧方法:
public Iterator searchUser(String name, String phone, String address) {
Addressbook book=new Addressbook();
if(!name.equals(""))
{
book.setName(name);
}
if(!address.equals(""))
{
book.setAddress(address);
}
if(!phone.equals(""))
{
book.setPhone(phone);
}
Criteria criteria=session.createCriteria(Addressbook.class);
System.out.println(Addressbook.class);
criteria.add(Example.create(book));
List list=criteria.list();
Iterator iter=list.iterator();
return iter;
}
在Action的处理
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
SearchForm searchForm = (SearchForm) form;// TODO Auto-generated method stub
ActionMessages errors=new ActionMessages();
String name=searchForm.getName();
String phone=searchForm.getPhone();
String address=searchForm.getAddress();
Iterator iter=DAOFactory.getAddressbookDAOInstance().searchUser(name, phone, address);
System.out.println("begin");
if(iter.hasNext())
{request.setAttribute("name",name );
request.setAttribute("phone", phone);
request.setAttribute("address", address);
System.out.println("DIS");
return mapping.findForward("display");}
else
{
errors.add("search",new ActionMessage("search2.error"));
saveMessages(request,errors);
return (new ActionForward(mapping.getInput()));
}
}
在JSP页面的显示
<table border=1>
<tr>
<td>ID</td>
<td>名字</td>
<td>电话</td>
<td>住址</td>
</tr>
<%
String name=request.getAttribute("name").toString();
String phone=request.getAttribute("phone").toString();
String address=request.getAttribute("address").toString();
Iterator iter=DAOFactory.getAddressbookDAOInstance().searchUser(name,phone,address);
while(iter.hasNext())
{Addressbook result=(Addressbook)iter.next();
%>
<tr>
<td widt><%=result.getId() %></td>
<td><%=result.getName() %></td>
<td><%=result.getPhone() %></td>
<td><%=result.getAddress() %></td>
</tr>
<%}
%>
</table>
分享到:
相关推荐
总结起来,Hibernate的本地SQL查询功能为我们提供了一种灵活的方式来执行复杂的数据库操作,同时通过`addEntity()`、`addScalar()`和`Transformers.aliasToBean()`等方法,我们可以方便地将查询结果封装成Java对象,...
通过对HBM映射文件的理解、DAO层的连表查询实现以及查询结果的处理等几个方面进行了详细解释。在实际项目中,合理运用这些技巧可以极大地提高开发效率和代码质量。需要注意的是,在编写连表查询时要充分考虑性能问题...
- 结果集转换:`addEntity()`方法用于指定查询结果应被映射到哪个实体类,`list()`或`scroll()`方法执行查询并返回结果集,这些结果集将自动封装为对应的Java对象。 5. 示例: 假设我们有一个`User`实体类,对应...
这个方法接受实体类、查询条件、排序方式、当前页和每页大小作为参数,返回分页结果。这种方法可以降低代码冗余,提升开发效率。 总结来说,Hibernate通过Criteria、HQL和Query API提供了丰富的查询机制,满足了...
- 通过`addEntity()`方法将查询结果映射到自定义的`CustomerSummary`类。 #### 六、总结 通过以上两种方式,我们不仅能够灵活地进行多表联合查询,还可以有效地将查询结果映射到Java对象中。这对于提高代码的可读性...
- 将查询结果保存到请求或会话作用域中,以便在JSP页面中使用。 ```java public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) ...
这个项目提供了一个基础的示例,展示如何配置Hibernate、创建实体类、编写查询以及显示查询结果。导入到Eclipse后,可以直接运行,观察其工作原理,这有助于深入理解Hibernate的核心功能。 【知识点】 1. ...
本文将深入探讨JQuery的启发,以及如何利用这些思想来优化对这两个框架的查询结果集进行二次处理。 首先,让我们了解JQuery的基本理念。JQuery是一个强大的JavaScript库,它提供了简洁的API来操作DOM(文档对象模型...
本文将深入探讨Hibernate的查询方式,特别聚焦于HQL(Hibernate Query Language)查询方式以及QBC(Query By Criteria)查询方式,旨在帮助读者全面理解并掌握这些核心功能。 #### HQL查询方式:面向对象的查询语言...
5. 使用本地 SQL 查询:Hibernate 只关心把 JDBC 结果集映射到持久对象图。 使用 HQL 的优点: * HQL 是一种面向对象的查询语言,易于学习和使用。 * HQL 提供了灵活多样的查询机制。 * HQL 可以检索对象的各种...
总结,Hibernate提供多种方式查询数据表中的字段,包括HQL、Criteria API和DetachedCriteria,选择合适的方法取决于具体需求。正确理解和使用Hibernate,能够大大提高Java开发中的数据库操作效率。
本篇将详细讲解一个“超好用的Hibernate查询工具类”,以及如何利用它来提升开发效率。 首先,我们需要理解Hibernate的基本概念。Hibernate是一种持久化框架,它可以将Java对象映射到数据库表,从而避免了编写大量...
使用本地sql语句查询后,无需再使用Object对查询结果进行强制转换,而是直接将查询结果放到实体Bean里了。 PS: 其实只有一版,这里只所以叫最终版是因为该附件我上传了好几天传不上去,到最后报告说‘资源已经存在...
它提供了保存、更新、删除对象以及执行查询的能力。当我们想要实现模糊查询时,可以利用`Criteria` API或者`HQL`(Hibernate Query Language)来完成。例如,如果我们要查询一个名为`User`的实体类中所有名字包含...
接下来,通过Hibernate的Session对象,执行这个动态生成的SQL,获取结果集。整个过程包括:加载模板文件、设置模型变量、解析模板生成SQL、执行SQL并返回结果。 七、示例代码 ```java // 创建Freemarker配置 ...
6. **执行查询**:调用 list() 或 scroll() 方法执行查询,获取结果集。 7. **处理结果**:遍历查询结果,将数据绑定到视图或者进一步处理。 总结,"Hibernate 多表连接分页查询示范项目"是一个实用的示例,它展示...
最后,通过`list()`或`scroll()`方法执行查询并获取结果集: ```java Query query = session.createQuery(hql); query.setParameter("value", someValue); query.setFirstResult(start); query.setMaxResults(count...
Hibernate分页查询小结
分页查询的核心思想是通过限制SQL查询结果的数量来实现分页效果。通常,我们需要确定两个关键参数:当前页数(`thisNumber`)和每页显示的记录数(`sumCount`)。基于这两个参数,我们可以计算出查询时应从哪一条...
在本篇文章中,我们将深入探讨Hibernate的查询机制,以及如何通过`hibernate.cfg.xml`配置文件来设置和管理数据库连接。 首先,让我们来看看Hibernate的核心配置文件`hibernate.cfg.xml`。这个文件是Hibernate与...