hust06215
2010-12-13 15:56 阅读 228
已采纳

ssh 站内搜索 分页显示问题

初学者,做的一个网站要求实现简单的站内搜索,我用like,要求是按标题搜索,搜索数据库中的两张表,别的好说,怎么搜索两张表,并把搜索的结果分页显示在一个页面?项目用的是ssh框架,hibernate分页只能是一次查找一张表,分两次查的话,第一次的能查出来,但是一点下一页就没显示了。帮忙看看,谢谢了。仅有的分。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    andy_javahome andy_javahome 2010-12-13 18:34

    我的回答却是与你的需求不符,本来以为你的两张表有关系呢。
    这个你可以尝试写个试图,将数据查到一张虚拟表里看行不。否则即使取出来在页面迭代也是个难事儿。
    要不就用超级笨的办法,先一张表一张表的统计,查询并统计条数,比如统计第一张表m条第二张表n条,这个统计传到页面。如果每页显示10条应该共三页,每点击下一页(如这里点的是弟二页时候)进行判断。
    在页面就进行判断 m-页数*10=a 将a传到后台判断 ,a=0 && a=10继续去第一张表。这里没写跳到某一页的算法你自己屡屡,这样分页的问题就解决了。
    页面显示的问题:
    这两种表的查询你一定是两个方法,但他们可以返回相同的List
    这个temp你自己定义的一个类,用来装载你的返回信息,里面定义你要返回所需要的字段的字段,而且你也可以添加一个表示表的字段。
    然后循环你查询的结果list将所需信息set到Temp里面。这样你页面返回的信息就统一了。

    点赞 评论 复制链接分享
  • andy_javahome andy_javahome 2010-12-13 16:21

    hibernate可以同时查找N张表,查询结果是object数组结果
    如hql:from AAA a,BBB b,CCC c where 。。。
    Query queryObject = getSession()
    .createQuery(hql);
    List list = queryObject.list();
    for (int i = 0; i < list.size(); i++) {
    Object[] obj = (Object[]) list.get(i);

    aaa = obj[0];
    bbb= obj[1];
    ccc = obj[2];
    }
    你就正常用hibernate分页没问题

    点赞 评论 复制链接分享
  • weixin_42299803 weixin_42299803 2010-12-13 16:34

    不行就用lucene,搜索还快

    点赞 评论 复制链接分享

相关推荐