posts - 0,  comments - 17,  trackbacks - 0
引用"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;

  }

posted on 2008-02-27 15:44 xyz 阅读(411) 评论(0)  编辑  收藏 所属分类: 网络文摘

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


网站导航:
 

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

留言簿

随笔档案(1)

文章分类(44)

文章档案(46)

收藏夹(1)

Adobe

AOP

API

appServer

BI

c

  • c-free
  • codeblocks
  • codelite
  • CodeLite IDE 是一个强大的开源,跨平台的 C/C++整合开发环境. 支持包括 Windows、Linux 和 Mac 系统下运行
  • codelite官网
  • dev-c++
  • Dev-C++是一个C&C++开发工具,它是一款自由软件,遵守GPL协议。
  • GCC
  • GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ada 与其他语言。

Cache

CMS

DB

eclipse

FreeMarker

hibernate

html5

ibatis

java

jquery

js

json

Linux

Log

mail server

mobile

mysql

oauth

openID

other

PHP

portal

report

Scheduler

schema

Security

SOA

spring

struts

UI原型设计

w3c

Wap

webservice

xml

供应链管理

博客链接

好网站

工作流

开源网

招聘

插件下载

操作系统

构建可伸缩的系统

构建工具

测试

  • IETest
  • IE官网
  • OpenSTA
  • Siege
  • Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力

游戏

源码托管

经营

资源

金融/财务

搜索

  •  

最新评论