您的位置:首页 > 编程语言 > Java开发

Hibernate和Spring对DAO处理的实例

2004-10-11 14:23 507 查看
引用"Spring"手册上的话说: Hibernate+Spring显然是天生的结合.

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

java代码: 

 1   
 2   package infoweb.dao;
 3   
 4   import java.util.List;
 5   import java.util.Iterator;
 6   
 7   import infoweb.pojo.Info;
 8   
 9   
 10  import net.sf.hibernate.HibernateException;
 11  import net.sf.hibernate.Query;
 12  import net.sf.hibernate.Session;
 13  
 14  import org.springframework.orm.hibernate.HibernateCallback;
 15  import org.springframework.orm.hibernate.support.HibernateDaoSupport;
 16  
 17  
 18  /**
 19   * <p>Title: </p>
 20   * <p>Description: </p>
 21   * <p>Copyright: Copyright (c) 2004</p>
 22   * <p>Company: </p>
 23   * @author 段洪杰
 24   * @version 1.0
 25   */
 26  


27  public class InfoDAOImpl extends HibernateDaoSupport implements IInfoDAO {
...}
 28    /**
 29     * 构造函数
 30     */


31    public InfoDAOImpl() {
...}
 32      super();
 33    } 34  
 35  
 36    /**
 37     * 增加记录
 38     * @param info Info
 39     */


40    public void setInfo(Info info) throws Exception {
...}
 41      getHibernateTemplate().save(info);
 42    } 43  
 44  
 45    /**
 46     * 通过ID取得记录
 47     * @param id String
 48     * @return Info
 49     */


50    public Info getInfoById(String id) throws Exception {
...}
 51      Info info = (Info) getHibernateTemplate().load(Info.class, id);
 52      return info;
 53    } 54  
 55  
 56    /**
 57     * 修改记录
 58     * @param Info info
 59     */


60    public void modifyInfo(Info info) throws Exception {
...}
 61      getHibernateTemplate().update(info);
 62    } 63  
 64  
 65    /**
 66     * 删除记录
 67     * @param Info info
 68     */


69    public void removeInfo(Info info) throws Exception {
...}
 70      getHibernateTemplate().delete(info);
 71    } 72  
 73  
 74    ////////////////////////////////////////////////////////
 75    /////                                                ///
 76    /////以下部份不带审核功能                             ///
 77    /////                                                ///
 78    ////////////////////////////////////////////////////////
 79  
 80    /**
 81     * 取记录总数
 82     * @return int
 83     */


84    public int getInfosCount() throws Exception {
...}
 85      int count = 0;
 86      String queryString = "select count(*) from Info";
 87      count = ((Integer) getHibernateTemplate().iterate(queryString).next()).
 88              intValue();
 89      return count;
 90    } 91  
 92  
 93    /**
 94     * 取所有记录集合
 95     * @return Iterator
 96     */


97    public Iterator getAllInfos() throws Exception {
...}
 98      Iterator iterator = null;
 99      String queryString = " select info from Info as info order by info.id desc";
 100     List list = getHibernateTemplate().find(queryString);
 101     iterator = list.iterator();
 102     return iterator;
 103   } 104 
 105 
 106   /**
 107    * 取记录集合
 108    * @return Iterator
 109    * @param int position, int length
 110    */


111   public Iterator getInfos(int position, int length) throws Exception {
...}
 112     Iterator iterator = null;
 113     String queryString = " select info from Info as info order by info.id desc";
 114     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 115     //设置游标的起始点
 116     query.setFirstResult(position);
 117     //设置游标的长度
 118     query.setMaxResults(length);
 119     //记录生成
 120     List list = query.list();
 121     //把查询到的结果放入迭代器
 122     iterator = list.iterator();
 123     return iterator;
 124   } 125 
 126 
 127   /**
 128    * 取第一条记录
 129    * @throws Exception
 130    * @return Station
 131    */


132   public Info getFirstInfo() throws Exception {
...}
 133     Iterator iterator = null;
 134     Info info = null;
 135     String queryString = "select info from Info as info order by info.id desc";
 136     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 137     //记录生成
 138     List list = query.list();
 139     //把查询到的结果放入迭代器
 140     iterator = list.iterator();


141     if (iterator.hasNext()) {
...}
 142       info = (Info) iterator.next();
 143     } 144     return info;
 145   } 146 
 147 
 148   /**
 149    * 取最后一条记录
 150    * @throws Exception
 151    * @return Station
 152    */


153   public Info getLastInfo() throws Exception {
...}
 154     Iterator iterator = null;
 155     Info info = null;
 156     String queryString = "select info from Info as info order by info.id asc";
 157     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 158     //记录生成
 159     List list = query.list();
 160     //把查询到的结果放入迭代器
 161     iterator = list.iterator();


162     if (iterator.hasNext()) {
...}
 163       info = (Info) iterator.next();
 164     } 165     return info;
 166 
 167   } 168 
 169 
 170   ////////////////////////////////////////////////////////
 171   /////                                                ///
 172   ///// 以下部份表中要有特定字段才能                         ///
 173   /////                                                ///
 174   ////////////////////////////////////////////////////////
 175 
 176   /**
 177    * 取符合条件记录总数, [表中要有 isperson 字段]
 178    * @return int
 179    * @param int isPerson
 180    */
 181 


182   public int getInfosCountByIsperson(int isPerson) throws Exception {
...}
 183     int count = 0;
 184     String queryString =
 185         "select count(*) from Info as info where info.isperson =" + isPerson;
 186     count = ((Integer) getHibernateTemplate().iterate(queryString).next()).
 187             intValue();
 188     return count;
 189   } 190 
 191 
 192   /**
 193    * 取所有符合条件记录集合, 模糊查询条件.[表中要有 isperson 字段]
 194    * @return Iterator
 195    * @param int isPerson
 196    */
 197 


198   public Iterator getAllInfosByIsperson(int isPerson) throws Exception {
...}
 199     Iterator iterator = null;
 200     String queryString = " select info from Info as info where info.isperson =" +
 201                          isPerson + " order by info.id desc";
 202     List list = getHibernateTemplate().find(queryString);
 203     //把查询到的结果放入迭代器
 204     iterator = list.iterator();
 205     return iterator;
 206   } 207 
 208 
 209   /**
 210    * 取符合条件记录集合, 模糊查询条件.[表中要有 isperson 字段]
 211    * @return Iterator
 212    * @param int isPerson,int position, int length
 213    */
 214 
 215   public Iterator getInfosByIsperson(int isPerson, int position, int length) throws


216       Exception {
...}
 217     Iterator iterator = null;
 218     String queryString = " select info from Info as info where info.isperson =" +
 219                          isPerson + " order by info.id desc";
 220     //创建查询
 221     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 222     //设置游标的起始点
 223     query.setFirstResult(position);
 224     //设置游标的长度
 225     query.setMaxResults(length);
 226     //记录生成
 227     List list = query.list();
 228     //把查询到的结果放入迭代器
 229     iterator = list.iterator();
 230     return iterator;
 231   } 232 
 233 
 234   ////////////////////////////////////////////////////////
 235   /////                                                ///
 236   ///// 以下部份表中要有特定字段才能            查询部份      ///
 237   /////                                                ///
 238   ///////////////////////////////////////////////////////
 239   /**
 240    * 取符合条件记录总数, 模糊查询条件.[表中要有 title 字段]
 241    * @return int
 242    * @param String text
 243    */


244   public int getInfosCount(String text) throws Exception {
...}
 245     int count = 0;
 246     count = ((Integer) getHibernateTemplate().iterate(
 247         "select count(*) from Info as info where info.title like '%" + text +
 248         "%'").next()).intValue();
 249     return count;
 250   } 251 
 252 
 253   /**
 254    * 取所有符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
 255    * @return Iterator
 256    * @param String text
 257    */
 258 


259   public Iterator getAllInfos(String text) throws Exception {
...}
 260     Iterator iterator = null;
 261     String queryString =
 262         " select info from Info as info where info.title like '%" + text +
 263         "%' order by info.id desc";
 264     //创建查询
 265     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 266     //记录生成
 267     List list = query.list();
 268     //把查询到的结果放入迭代器
 269     iterator = list.iterator();
 270     return iterator;
 271   } 272 
 273 
 274   /**
 275    * 取符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
 276    * @return Iterator
 277    * @param String text,int position, int length
 278    */
 279   public Iterator getInfos(String text, int position, int length) throws


280       Exception {
...}
 281     Iterator iterator = null;
 282     String queryString =
 283         " select info from Info as info where info.title like '%" + text +
 284         "%' order by info.id desc";
 285 
 286     //创建查询
 287     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 288     //设置游标的起始点
 289     query.setFirstResult(position);
 290     //设置游标的长度
 291     query.setMaxResults(length);
 292     //记录生成
 293     List list = query.list();
 294     //把查询到的结果放入迭代器
 295     iterator = list.iterator();
 296     return iterator;
 297   } 298 
 299 
 300   ////////////////////////////////////////////////////////
 301   /////                                                ///
 302   ///// 以下部份表中要有特定字段才能                        ///
 303   /////                                                ///
 304   ////////////////////////////////////////////////////////
 305 
 306   /**
 307    * 取符合条件记录总数.[ 表中要有 registername 字段]
 308    * @return int
 309    * @param String text
 310    */


311   public int getInfosCountByRegisterName(String registerName) throws Exception {
...}
 312     int count = 0;
 313     count = ((Integer) getHibernateTemplate().iterate(
 314         "select count(*) from Info as info where info.registername = '" +
 315         registerName + "'").next()).intValue();
 316     return count;
 317   } 318 
 319 
 320   /**
 321    * 通过注册名取得一条记录,如有多条,只取第一条.[表中要有 registername字段]
 322    * @param registername String
 323    * @return Info
 324    */


325   public Info getInfoByRegisterName(String registerName) throws Exception {
...}
 326     Iterator iterator = null;
 327     Info info = null;
 328     String queryString =
 329         " select info from Info as info where info.registername='" +
 330         registerName + "' order by info.id desc";
 331     //创建查询
 332     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 333     //记录生成
 334     List list = query.list();
 335     //把查询到的结果放入迭代器
 336     iterator = list.iterator();


337     if (iterator.hasNext()) {
...}
 338       info = (Info) iterator.next();
 339     } 340     return info;
 341   } 342 
 343 
 344   /**
 345    * 通过注册名取得所有记录集合.[表中要有 registername字段]
 346    * @param registername String
 347    * @return Iterator
 348    */
 349   public Iterator getAllInfosByRegisterName(String registerName) throws


350       Exception {
...}
 351     Iterator iterator = null;
 352     String queryString =
 353         " select info from Info as info where info.registername='" +
 354         registerName + "' order by info.id desc";
 355     //创建查询
 356     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 357     //记录生成
 358     List list = query.list();
 359     //把查询到的结果放入迭代器
 360     iterator = list.iterator();
 361     return iterator;
 362   } 363 
 364 
 365   /**
 366    * 通过注册名取得记录列表.[表中要有 registername字段]
 367    * @param registername String
 368    * @return Iterator
 369    */
 370   public Iterator getInfosByRegisterName(String registerName, int position,


371                                          int length) throws Exception {
...}
 372     Iterator iterator = null;
 373     String queryString =
 374         " select info from Info as info where info.registername='" +
 375         registerName + "' order by info.id desc";
 376     //创建查询
 377     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 378     //设置游标的起始点
 379     query.setFirstResult(position);
 380     //设置游标的长度
 381     query.setMaxResults(length);
 382     //记录生成
 383     List list = query.list();
 384     //把查询到的结果放入迭代器
 385     iterator = list.iterator();
 386     return iterator;
 387   } 388 
 389 
 390   ////////////////////////////////////////////////////////
 391   /////                                                ///
 392   ///// 以下部份表中要有特定字段才能                        ///
 393   /////                                                ///
 394   ////////////////////////////////////////////////////////
 395 
 396   /**
 397    * 取记录总数.[ 表中要有 board_id 字段]
 398    * @return int
 399    * @param String boardId
 400    */


401   public int getInfosCountByBoard(String boardId) throws Exception {
...}
 402     int count = 0;
 403 
 404     count = ((Integer) getHibernateTemplate().iterate(
 405         "select count(*) from Info as info where info.boardId = '" + boardId +
 406         "'").next()).intValue();
 407 
 408     return count;
 409   } 410 
 411 
 412   /**
 413    * 通过版块名取得所有记录集合.[表中要有 board_id字段]
 414    * @param BoardId String
 415    * @return Iterator
 416    */


417   public Iterator getAllInfosByBoard(String boardId) throws Exception {
...}
 418     Iterator iterator = null;
 419     String queryString = " select info from Info as info where info.boardId='" +
 420                          boardId + "' order by info.id desc";
 421     //创建查询
 422     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 423     //记录生成
 424     List list = query.list();
 425     //把查询到的结果放入迭代器
 426     iterator = list.iterator();
 427     return iterator;
 428   } 429 
 430 
 431   /**
 432    * 通过版块名取得记录列表.[表中要有 board_id字段]
 433    * @param BoardId String
 434    * @return Iterator
 435    */
 436   public Iterator getInfosByBoard(String boardId, int position, int length) throws


437       Exception {
...}
 438     Iterator iterator = null;
 439     String queryString = " select info from Info as info where info.boardId='" +
 440                          boardId + "' order by info.id desc";
 441 
 442     //创建查询
 443     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 444     //设置游标的起始点
 445     query.setFirstResult(position);
 446     //设置游标的长度
 447     query.setMaxResults(length);
 448     //记录生成
 449     List list = query.list();
 450     //把查询到的结果放入迭代器
 451     iterator = list.iterator();
 452 
 453     return iterator;
 454 
 455   } 456 
 457 
 458   /**
 459    * 取符合条件记录总数.[ 表中要有 board_id 字段,title]  模糊查询title
 460    * @return int
 461    * @param String boardId ,String text
 462    */


463   public int getInfosCountByBoard(String boardId, String text) throws Exception {
...}
 464     int count = 0;
 465 
 466     count = ((Integer) getHibernateTemplate().iterate(
 467         "select count(*) from Info as info where info.boardId='" + boardId +
 468         "' and info.title like '%" + text + "%'").next()).intValue();
 469 
 470     return count;
 471 
 472   } 473 
 474 
 475   /**
 476    * 通过版块名取得记录列表.[表中要有 board_id字段]  模糊查询title
 477    * @param String boardID,int position, int length
 478    * @return Iterator
 479    */
 480   public Iterator getInfosByBoard(String boardId, int position, int length,


481                                   String text) throws Exception {
...}
 482     Iterator iterator = null;
 483     String queryString = " select info from Info as info where info.boardId='" +
 484                          boardId + "' and info.title like '%" + text +
 485                          "%' order by info.id desc";
 486 
 487     //创建查询
 488     Query query = getHibernateTemplate().createQuery(getSession(), queryString);
 489     //设置游标的起始点
 490     query.setFirstResult(position);
 491     //设置游标的长度
 492     query.setMaxResults(length);
 493     //记录生成
 494     List list = query.list();
 495     //把查询到的结果放入迭代器
 496     iterator = list.iterator();
 497     return iterator;
 498 
 499   } 500 
 501  

学习中ing
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息