软件艺术思考者  
混沌,彷徨,立志,蓄势...
公告
日历
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

随笔分类(86)

随笔档案(85)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 
 
引用"Spring"手册上的话说: Hibernate+Spring显然是天生的结合.

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

java代码: 


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
*/


publicclass InfoDAOImpl extends HibernateDaoSupport implements IInfoDAO {
  /**
   * 构造函数
   */

  public InfoDAOImpl(){
    super();
  }


  /**
   * 增加记录
   * @param info Info
   */

  publicvoid setInfo(Info info)throwsException{
    getHibernateTemplate().save(info);
  }


  /**
   * 通过ID取得记录
   * @param id String
   * @return Info
   */

  public Info getInfoById(String id)throwsException{
    Info info = (Info) getHibernateTemplate().load(Info.class, id);
    return info;
  }


  /**
   * 修改记录
   * @param Info info
   */

  publicvoid modifyInfo(Info info)throwsException{
    getHibernateTemplate().update(info);
  }


  /**
   * 删除记录
   * @param Info info
   */

  publicvoid removeInfo(Info info)throwsException{
    getHibernateTemplate().delete(info);
  }


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

  /**
   * 取记录总数
   * @return int
   */

  publicint getInfosCount()throwsException{
    int count = 0;
    String queryString = "select count(*) from Info";
    count = ((Integer) getHibernateTemplate().iterate(queryString).next()).
            intValue();
    return count;
  }


  /**
   * 取所有记录集合
   * @return Iterator
   */

  publicIterator getAllInfos()throwsException{
    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
   */

  publicIterator getInfos(int position, int length)throwsException{
    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()throwsException{
    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()throwsException{
    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
   */


  publicint getInfosCountByIsperson(int isPerson)throwsException{
    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
   */


  publicIterator getAllInfosByIsperson(int isPerson)throwsException{
    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
   */


  publicIterator 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
   */

  publicint getInfosCount(String text)throwsException{
    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
   */


  publicIterator getAllInfos(String text)throwsException{
    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
   */

  publicIterator 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
   */

  publicint getInfosCountByRegisterName(String registerName)throwsException{
    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)throwsException{
    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
   */

  publicIterator 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
   */

  publicIterator getInfosByRegisterName(String registerName, int position,
                                         int length)throwsException{
    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
   */

  publicint getInfosCountByBoard(String boardId)throwsException{
    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
   */

  publicIterator getAllInfosByBoard(String boardId)throwsException{
    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
   */

  publicIterator 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
   */

  publicint getInfosCountByBoard(String boardId, String text)throwsException{
    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
   */

  publicIterator getInfosByBoard(String boardId, int position, int length,
                                  String text)throwsException{
    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
   */

  publicint getInfosCount(int isAuditing)throwsException{
   
posted on 2006-07-25 11:23 智者无疆 阅读(617) 评论(0)  编辑  收藏 所属分类: about hibernateabout spring

只有注册用户登录后才能发表评论。


网站导航:
 
 
Copyright © 智者无疆 Powered by: 博客园 模板提供:沪江博客


   观音菩萨赞