论坛首页 Java版 DAO

Hibernate+Spring 对DAO的处理实列!

浏览 18335 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2004-09-30
引用"Spring"手册上的话说: Hibernate+Spring显然是天生的结合.

下面是我用spring处理的一个HibernateDAO实例,可以看到,代码量大大减少了.

[code:1]
package infoweb.dao;

import java.util.List;
import java.util.Iterator;

import infoweb.pojo.Info;


import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;

import org.springframework.orm.hibernate.HibernateCallback;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;


/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author 段洪杰
* @version 1.0
*/

public class InfoDAOImpl extends HibernateDaoSupport implements IInfoDAO {
  /**
   * 构造函数
   */
  public InfoDAOImpl() {
    super();
  }


  /**
   * 增加记录
   * @param info Info
   */
  public void setInfo(Info info) throws Exception {
    getHibernateTemplate().save(info);
  }


  /**
   * 通过ID取得记录
   * @param id String
   * @return Info
   */
  public Info getInfoById(String id) throws Exception {
    Info info = (Info) getHibernateTemplate().load(Info.class, id);
    return info;
  }


  /**
   * 修改记录
   * @param Info info
   */
  public void modifyInfo(Info info) throws Exception {
    getHibernateTemplate().update(info);
  }


  /**
   * 删除记录
   * @param Info info
   */
  public void removeInfo(Info info) throws Exception {
    getHibernateTemplate().delete(info);
  }


  ////////////////////////////////////////////////////////
  /////                                                ///
  /////以下部份不带审核功能                              ///
  /////                                                ///
  ////////////////////////////////////////////////////////

  /**
   * 取记录总数
   * @return int
   */
  public int getInfosCount() throws Exception {
    int count = 0;
    String queryString = "select count(*) from Info";
    count = ((Integer) getHibernateTemplate().iterate(queryString).next()).
            intValue();
    return count;
  }


  /**
   * 取所有记录集合
   * @return Iterator
   */
  public Iterator getAllInfos() throws Exception {
    Iterator iterator = null;
    String queryString = " select info from Info as info order by info.id desc";
    List list = getHibernateTemplate().find(queryString);
    iterator = list.iterator();
    return iterator;
  }


  /**
   * 取记录集合
   * @return Iterator
   * @param int position, int length
   */
  public Iterator getInfos(int position, int length) throws Exception {
    Iterator iterator = null;
    String queryString = " select info from Info as info order by info.id desc";
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;
  }


  /**
   * 取第一条记录
   * @throws Exception
   * @return Station
   */
  public Info getFirstInfo() throws Exception {
    Iterator iterator = null;
    Info info = null;
    String queryString = "select info from Info as info order by info.id desc";
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    if (iterator.hasNext()) {
      info = (Info) iterator.next();
    }
    return info;
  }


  /**
   * 取最后一条记录
   * @throws Exception
   * @return Station
   */
  public Info getLastInfo() throws Exception {
    Iterator iterator = null;
    Info info = null;
    String queryString = "select info from Info as info order by info.id asc";
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    if (iterator.hasNext()) {
      info = (Info) iterator.next();
    }
    return info;

  }


  ////////////////////////////////////////////////////////
  /////                                                ///
  ///// 以下部份表中要有特定字段才能正确运行   个人和企业     ///
  /////                                                ///
  ////////////////////////////////////////////////////////

  /**
   * 取符合条件记录总数, [表中要有 isperson 字段]
   * @return int
   * @param int isPerson
   */

  public int getInfosCountByIsperson(int isPerson) throws Exception {
    int count = 0;
    String queryString =
        "select count(*) from Info as info where info.isperson =" + isPerson;
    count = ((Integer) getHibernateTemplate().iterate(queryString).next()).
            intValue();
    return count;
  }


  /**
   * 取所有符合条件记录集合, 模糊查询条件.[表中要有 isperson 字段]
   * @return Iterator
   * @param int isPerson
   */

  public Iterator getAllInfosByIsperson(int isPerson) throws Exception {
    Iterator iterator = null;
    String queryString = " select info from Info as info where info.isperson =" +
                         isPerson + " order by info.id desc";
    List list = getHibernateTemplate().find(queryString);
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;
  }


  /**
   * 取符合条件记录集合, 模糊查询条件.[表中要有 isperson 字段]
   * @return Iterator
   * @param int isPerson,int position, int length
   */

  public Iterator getInfosByIsperson(int isPerson, int position, int length) throws
      Exception {
    Iterator iterator = null;
    String queryString = " select info from Info as info where info.isperson =" +
                         isPerson + " order by info.id desc";
    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;
  }


  ////////////////////////////////////////////////////////
  /////                                                ///
  ///// 以下部份表中要有特定字段才能正确运行   查询部份      ///
  /////                                                ///
  ///////////////////////////////////////////////////////
  /**
   * 取符合条件记录总数, 模糊查询条件.[表中要有 title 字段]
   * @return int
   * @param String text
   */
  public int getInfosCount(String text) throws Exception {
    int count = 0;
    count = ((Integer) getHibernateTemplate().iterate(
        "select count(*) from Info as info where info.title like '%" + text +
        "%'").next()).intValue();
    return count;
  }


  /**
   * 取所有符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
   * @return Iterator
   * @param String text
   */

  public Iterator getAllInfos(String text) throws Exception {
    Iterator iterator = null;
    String queryString =
        " select info from Info as info where info.title like '%" + text +
        "%' order by info.id desc";
    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;
  }


  /**
   * 取符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
   * @return Iterator
   * @param String text,int position, int length
   */
  public Iterator getInfos(String text, int position, int length) throws
      Exception {
    Iterator iterator = null;
    String queryString =
        " select info from Info as info where info.title like '%" + text +
        "%' order by info.id desc";

    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;
  }


  ////////////////////////////////////////////////////////
  /////                                                ///
  ///// 以下部份表中要有特定字段才能正确运行   注册相关      ///
  /////                                                ///
  ////////////////////////////////////////////////////////

  /**
   * 取符合条件记录总数.[ 表中要有 registername 字段]
   * @return int
   * @param String text
   */
  public int getInfosCountByRegisterName(String registerName) throws Exception {
    int count = 0;
    count = ((Integer) getHibernateTemplate().iterate(
        "select count(*) from Info as info where info.registername = '" +
        registerName + "'").next()).intValue();
    return count;
  }


  /**
   * 通过注册名取得一条记录,如有多条,只取第一条.[表中要有 registername字段]
   * @param registername String
   * @return Info
   */
  public Info getInfoByRegisterName(String registerName) throws Exception {
    Iterator iterator = null;
    Info info = null;
    String queryString =
        " select info from Info as info where info.registername='" +
        registerName + "' order by info.id desc";
    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    if (iterator.hasNext()) {
      info = (Info) iterator.next();
    }
    return info;
  }


  /**
   * 通过注册名取得所有记录集合.[表中要有 registername字段]
   * @param registername String
   * @return Iterator
   */
  public Iterator getAllInfosByRegisterName(String registerName) throws
      Exception {
    Iterator iterator = null;
    String queryString =
        " select info from Info as info where info.registername='" +
        registerName + "' order by info.id desc";
    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;
  }


  /**
   * 通过注册名取得记录列表.[表中要有 registername字段]
   * @param registername String
   * @return Iterator
   */
  public Iterator getInfosByRegisterName(String registerName, int position,
                                         int length) throws Exception {
    Iterator iterator = null;
    String queryString =
        " select info from Info as info where info.registername='" +
        registerName + "' order by info.id desc";
    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;
  }


  ////////////////////////////////////////////////////////
  /////                                                ///
  ///// 以下部份表中要有特定字段才能正确运行     树型版块     ///
  /////                                                ///
  ////////////////////////////////////////////////////////

  /**
   * 取记录总数.[ 表中要有 board_id 字段]
   * @return int
   * @param String boardId
   */
  public int getInfosCountByBoard(String boardId) throws Exception {
    int count = 0;

    count = ((Integer) getHibernateTemplate().iterate(
        "select count(*) from Info as info where info.boardId = '" + boardId +
        "'").next()).intValue();

    return count;
  }


  /**
   * 通过版块名取得所有记录集合.[表中要有 board_id字段]
   * @param BoardId String
   * @return Iterator
   */
  public Iterator getAllInfosByBoard(String boardId) throws Exception {
    Iterator iterator = null;
    String queryString = " select info from Info as info where info.boardId='" +
                         boardId + "' order by info.id desc";
    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;
  }


  /**
   * 通过版块名取得记录列表.[表中要有 board_id字段]
   * @param BoardId String
   * @return Iterator
   */
  public Iterator getInfosByBoard(String boardId, int position, int length) throws
      Exception {
    Iterator iterator = null;
    String queryString = " select info from Info as info where info.boardId='" +
                         boardId + "' order by info.id desc";

    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();

    return iterator;

  }


  /**
   * 取符合条件记录总数.[ 表中要有 board_id 字段,title]  模糊查询title
   * @return int
   * @param String boardId ,String text
   */
  public int getInfosCountByBoard(String boardId, String text) throws Exception {
    int count = 0;

    count = ((Integer) getHibernateTemplate().iterate(
        "select count(*) from Info as info where info.boardId='" + boardId +
        "' and info.title like '%" + text + "%'").next()).intValue();

    return count;

  }


  /**
   * 通过版块名取得记录列表.[表中要有 board_id字段]  模糊查询title
   * @param String boardID,int position, int length
   * @return Iterator
   */
  public Iterator getInfosByBoard(String boardId, int position, int length,
                                  String text) throws Exception {
    Iterator iterator = null;
    String queryString = " select info from Info as info where info.boardId='" +
                         boardId + "' and info.title like '%" + text +
                         "%' order by info.id desc";

    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;

  }


  ////////////////////////////////////////////////////////
  /////                                                ///
  /////以下部份带有审核功能                              ///
  /////                                                ///
  ////////////////////////////////////////////////////////

  /**
   * 取记录总数
   * @return int
   * @param int isAuditing
   */
  public int getInfosCount(int isAuditing) throws Exception {
    int count = 0;

    count = ((Integer) getHibernateTemplate().iterate(
        "select count(*) from Info as info where info.isauditing=" +
        isAuditing).next()).intValue();
    return count;
  }


  /**
   * 取所有记录集合
   * @return Iterator
   * @param int position, int length,int isAuditing
   */
  public Iterator getAllInfos(int isAuditing) throws Exception {
    Iterator iterator = null;
    String queryString =
        " select info from Info as info where info.isauditing=" + isAuditing +
        " order by info.id desc";
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;
  }


  /**
   * 取记录集合
   * @return Iterator
   * @param int position, int length,int isAuditing
   */
  public Iterator getInfos(int position, int length, int isAuditing) throws
      Exception {
    Iterator iterator = null;
    String queryString =
        " select info from Info as info where info.isauditing=" + isAuditing +
        " order by info.id desc";

    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();

    return iterator;
  }


  ////////////////////////////////////////////////////////////////
  /////                                                       ///
  ///// 以下部份表中要有特定字段才能正确运行 有审核功能  个人和企业   ///
  /////                                                       ///
  ///////////////////////////////////////////////////////////////

  /**
   * 取符合条件记录总数, [表中要有 isperson isAuditing 字段]
   * @return int
   * @param int isPerson,int isAuditing
   */

  public int getInfosCountByIsperson(int isPerson, int isAuditing) throws
      Exception {
    int count = 0;

    count = ((Integer) getHibernateTemplate().iterate(
        "select count(*) from Info as info where info.isperson =" + isPerson +
        " and info.isauditing=" + isAuditing).next()).intValue();

    return count;
  }


  /**
   * 取所有符合条件记录集合, 模糊查询条件.[表中要有 isperson isAuditing 字段]
   * @return Iterator
   * @param int isPerson,int isAuditing
   */

  public Iterator getAllInfosByIsperson(int isPerson, int isAuditing) throws
      Exception {
    Iterator iterator = null;
    String queryString = " select info from Info as info where info.isperson =" +
                         isPerson + " and info.isauditing=" + isAuditing +
                         " order by info.id desc";

    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();

    return iterator;
  }


  /**
   * 取符合条件记录集合, 模糊查询条件.[表中要有 isperson isAuditing 字段]
   * @return Iterator
   * @param int isPerson,int position, int length,int isAuditing
   */

  public Iterator getInfosByIsperson(int isPerson, int position, int length,
                                     int isAuditing) throws Exception {
    Iterator iterator = null;
    String queryString = " select info from Info as info where info.isperson =" +
                         isPerson + " and info.isauditing=" + isAuditing +
                         " order by info.id desc";

    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();

    return iterator;

  }


  ////////////////////////////////////////////////////////
  /////                                                ///
  ///// 要有特定字段才能正确运行   有审核功能    查询部份    ///
  /////                                                ///
  ///////////////////////////////////////////////////////
  /**
   * 取符合条件记录总数, 模糊查询条件.[表中要有 title 字段]
   * @return int
   * @param String text,int isAuditing
   */
  public int getInfosCount(String text, int isAuditing) throws Exception {
    int count = 0;

    count = ((Integer) getHibernateTemplate().iterate(
        "select count(*) from Info as info where info.isauditing=" +
        isAuditing + " and info.title like '%" + text + "%'").next()).
            intValue();

    return count;
  }


  /**
   * 取所有符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
   * @return Iterator
   * @param String text,int isAuditing
   */

  public Iterator getAllInfos(String text, int isAuditing) throws Exception {
    Iterator iterator = null;
    String queryString =
        " select info from Info as info where info.isauditing=" + isAuditing +
        " and info.title like '%" + text + "%' order by info.id desc";

    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();

    return iterator;
  }


  /**
   * 取符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
   * @return Iterator
   * @param String text,int position, int length,int isAuditing
   */
  public Iterator getInfos(String text, int position, int length,
                           int isAuditing) throws Exception {
    Iterator iterator = null;
    String queryString =
        " select info from Info as info where info.isauditing=" + isAuditing +
        " and info.title like '%" + text + "%' order by info.id desc";

    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();

    return iterator;
  }


  ////////////////////////////////////////////////////////
  /////                                                ///
  ///// 要有特定字段才能正确运行   有审核功能  注册相关      ///
  /////                                                ///
  ////////////////////////////////////////////////////////

  /**
   * 取符合条件记录总数.[ 表中要有 registername isauditing字段]
   * @return int
   * @param String text,int isAuditing
   */
  public int getInfosCountByRegisterName(String registerName, int isAuditing) throws
      Exception {
    int count = 0;

    count = ((Integer) getHibernateTemplate().iterate(
        "select count(*) from Info as info where info.isauditing=" +
        isAuditing + " and info.registername = '" + registerName + "'").next()).
            intValue();

    return count;
  }


  /**
   * 通过注册名取得一条记录,如有多条,只取第一条.[表中要有 registername isauditing字段]
   * @param registername String,int isAuditing
   * @return Info
   */
  public Info getInfoByRegisterName(String registerName, int isAuditing) throws
      Exception {
    Iterator iterator = null;
    Info info = null;

    String queryString =
        " select info from Info as info where info.isauditing=" + isAuditing +
        " and info.registername='" + registerName + "' order by info.id desc";

    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    if (iterator.hasNext()) {
      info = (Info) iterator.next();
    }

    return info;
  }


  /**
   * 通过注册名取得所有记录集合.[表中要有 registername isauditing字段]
   * @param registername String,int isAuditing
   * @return Iterator
   */
  public Iterator getAllInfosByRegisterName(String registerName, int isAuditing) throws
      Exception {
    Iterator iterator = null;

    String queryString =
        " select info from Info as info where info.isauditing=" + isAuditing +
        " and info.registername='" + registerName + "' order by info.id desc";

    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();

    return iterator;
  }


  /**
   * 通过注册名取得记录列表.[表中要有 registername isauditing字段]
   * @param registername String,int isAuditing
   * @return Iterator
   */
  public Iterator getInfosByRegisterName(String registerName, int position,
                                         int length, int isAuditing) throws
      Exception {
    Iterator iterator = null;
    String queryString =
        " select info from Info as info where info.isauditing=" + isAuditing +
        " and info.registername='" + registerName + "' order by info.id desc";

    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();

    return iterator;
  }


  ////////////////////////////////////////////////////////
  /////                                                ///
  ///// 要有特定字段才能正确运行   有审核功能 树型版块       ///
  /////                                                ///
  ////////////////////////////////////////////////////////

  /**
   * 取记录总数.[ 表中要有 board_id isauditing字段]
   * @return int
   * @param String boardId,int isAuditing
   */
  public int getInfosCountByBoard(String boardId, int isAuditing) throws
      Exception {
    int count = 0;

    count = ((Integer) getHibernateTemplate().iterate(
        "select count(*) from Info as info where info.isauditing=" +
        isAuditing + " and info.boardId = '" + boardId + "'").next()).intValue();

    return count;
  }


  /**
   * 通过版块名取得所有记录集合.[表中要有 board_id isauditing字段]
   * @param BoardId String,int isAuditing
   * @return Iterator
   */
  public Iterator getAllInfosByBoard(String boardId, int isAuditing) throws
      Exception {
    Iterator iterator = null;

    String queryString =
        " select info from Info as info where info.isauditing=" + isAuditing +
        " and info.boardId='" + boardId + "' order by info.id desc";

    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;
  }


  /**
   * 通过版块名取得记录列表.[表中要有 board_id isauditing字段]
   * @param BoardId String,int isAuditing
   * @return Iterator
   */
  public Iterator getInfosByBoard(String boardId, int position, int length,
                                  int isAuditing) throws Exception {
    Iterator iterator = null;
    String queryString =
        " select info from Info as info where info.isauditing=" + isAuditing +
        " and info.boardId='" + boardId + "' order by info.id desc";

    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();

    return iterator;

  }


  /**
   * 取符合条件记录总数.[ 表中要有 board_id isauditing字段,title]  模糊查询title
   * @return int
   * @param String boardId ,String text,int isAuditing
   */
  public int getInfosCountByBoard(String boardId, String text, int isAuditing) throws
      Exception {
    int count = 0;

    count = ((Integer) getHibernateTemplate().iterate(
        "select count(*) from Info as info where info.isauditing=" +
        isAuditing + " and info.boardId='" + boardId +
        "' and info.title like '%" +
        text + "%'").next()).intValue();

    return count;

  }


  /**
   * 通过版块名取得记录列表.[表中要有 board_id字段 isauditing]  模糊查询title
   * @param String boardId,int position, int length,int isAuditing
   * @return Iterator
   */
  public Iterator getInfosByBoard(String boardId, int position, int length,
                                  String text, int isAuditing) throws Exception {
    Iterator iterator = null;
    String queryString =
        " select info from Info as info where info.isauditing=" + isAuditing +
        " and info.boardId='" + boardId + "' and info.title like '%" + text +
        "%' order by info.id desc";

    //创建查询
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();

    return iterator;

  }


}

[/code:1]
   
最后更新时间:2004-12-30
dhj1真是无私奉献,学习学习
   
0 请登录后投票
最后更新时间:2004-12-30
可真够长的!能否帖贴你的SERVICE的代码!
   
0 请登录后投票
最后更新时间:2004-12-30
辛苦了,不错
   
0 请登录后投票
最后更新时间:2005-03-06
读 记录集合的时候 我 原来用List 现在 改成 Iterator 感觉特别慢.

大家都用什么 阿 ?


[code:1]/**
   * 取记录集合
   * @return Iterator
   * @param int position, int length
   */
  public Iterator getInfos(int position, int length) throws Exception {
    Iterator iterator = null;
    String queryString = " select info from Info as info order by info.id desc";
    Query query = getHibernateTemplate().createQuery(getSession(), queryString);
    //设置游标的起始点
    query.setFirstResult(position);
    //设置游标的长度
    query.setMaxResults(length);
    //记录生成
    List list = query.list();
    //把查询到的结果放入迭代器
    iterator = list.iterator();
    return iterator;
  } [/code:1]

这个怎么和我的不一样啊 ? 奇怪。

[code:1] //得到贴子列表
    public List findBbsMains(final String bbsMains, final String arg1,final String arg2,final int pageNum, final int pageSize) {
        return getHibernateTemplate().executeFind(new HibernateCallback() {
            public Object doInHibernate(Session session)throws HibernateException, SQLException {
           query = getHibernateTemplate().createQuery(session,"select count(*)" + bbsMains);
          query.setParameter(0, arg1, Hibernate.STRING);
        query.setParameter(1, arg2, Hibernate.STRING);
     if(!query.list().isEmpty())
        totalCount = (Integer) query.list().get(0);
     //得到当前页的一个list集合
     query = getHibernateTemplate().createQuery(session, bbsMains.toString());
          query.setParameter(0, arg1, Hibernate.STRING);
        query.setParameter(1, arg2, Hibernate.STRING);
         if ( (pageSize != -1) && (pageNum != -1)) {
              query.setMaxResults(pageSize);
              query.setFirstResult(pageNum);
         }
         return query.list();   
            }
        });
    }[/code:1]
   
0 请登录后投票
最后更新时间:2005-10-14
你的那段分页代码肯定会出错,你检查一下你的log,里面肯定会出现"unclosed connection,forgot to call close() on your session?"
   
0 请登录后投票
最后更新时间:2005-10-14
请教两个问题
1。提到的审核功能起到什么作用? 只用auditing字段表示?
2。所有的hql都是用字符串连接,不怕类似sql注入的危险?
   
0 请登录后投票
最后更新时间:2005-11-10
梅 写道
读 记录集合的时候 我 原来用List 现在 改成 Iterator 感觉特别慢.大家都用什么 阿 ?


这个怎么和我的不一样啊 ? 奇怪。

[code:1] //得到贴子列表
    public List findBbsMains(final String bbsMains, final String arg1,final String arg2,final int pageNum, final int pageSize) {
        return getHibernateTemplate().executeFind(new HibernateCallback() {
            public Object doInHibernate(Session session)throws HibernateException, SQLException {
           query = getHibernateTemplate().createQuery(session,"select count(*)" + bbsMains);
          query.setParameter(0, arg1, Hibernate.STRING);
        query.setParameter(1, arg2, Hibernate.STRING);
     if(!query.list().isEmpty())
        totalCount = (Integer) query.list().get(0);
     //得到当前页的一个list集合
     query = getHibernateTemplate().createQuery(session, bbsMains.toString());
          query.setParameter(0, arg1, Hibernate.STRING);
        query.setParameter(1, arg2, Hibernate.STRING);
         if ( (pageSize != -1) && (pageNum != -1)) {
              query.setMaxResults(pageSize);
              query.setFirstResult(pageNum);
         }
         return query.list();   
            }
        });
    }[/code:1]


iterator肯定比list遍历得快。我得到query 的方式和你不一样?不明白为什么你的回调中会包含getHibernateTemplate(),可以说说理由吗?
[code:1]
  return getHibernateTemplate().executeFind(new HibernateCallback() {
      public Object doInHibernate(Session session) throws HibernateException {

       Query query = session.createQuery(condition);         int rowCount = ((Integer)session.iterate("select count(*)"+condition).next()).intValue();
        query.setFirstResult(maxResults * firstResult);
        query.setMaxResults(maxResults);
        List list = query.list();
        Pagination pagination = new Pagination(rowCount,firstResult,maxResults);
        pagination.setTempList(list);
        List returnList = new ArrayList();
        returnList.add(pagination);
        return returnList;
      }
    });
[/code:1]
   
0 请登录后投票
最后更新时间:2005-11-10
都是重复的代码。呵呵
   
0 请登录后投票
最后更新时间:2005-11-10
//得到当前页的一个list集合
query = getHibernateTemplate().createQuery(session, bbsMains.toString());

我新建了个工程,发现上面getHibernateTemplate()后就没有createQuery(session, bbsMains.toString())这个方法,这是怎么回事?难道版本不同了?
   
0 请登录后投票
论坛首页 Java版 DAO

跳转论坛:
JavaEye推荐