NoteHibernateDAO.java
上传用户:wlfwy2004
上传日期:2016-12-12
资源大小:33978k
文件大小:4k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. package com.opensource.blog.dao.hibernate;
  2. import org.springframework.orm.hibernate3.support.*;
  3. import org.springframework.orm.hibernate3.*;
  4. import org.hibernate.*;
  5. import com.opensource.blog.dao.NoteDAO;
  6. import com.opensource.blog.model.Note;
  7. import java.util.List;
  8. import java.sql.SQLException;
  9. public class NoteHibernateDAO
  10.     extends HibernateDaoSupport implements NoteDAO {
  11.   private static final String LOAD_BY_ID_BLOGID = "from Note where id = ? and blogid = ?";
  12.   private static final String GET_COUNT_BY_ARTID = "select count(*) from Note where artid = ?";
  13.   private static final String LOADS_BY_ARTID = "from Note where artid = ? order by id desc";
  14.   private static final String GET_COUNT_BY_BLOGID = "select count(*) from Note where blogid = ?";
  15.   private static final String LOADS_BY_BLOGID = "from Note where blogid = ? order by id desc";
  16.   public NoteHibernateDAO() {
  17.     super();
  18.   }
  19.   /**
  20.    *
  21.    * @param note Note
  22.    * @return Note
  23.    * @todo Implement this com.opensource.blog.dao.NoteDAO method
  24.    */
  25.   public Note saveNote(Note note) {
  26.     this.getHibernateTemplate().saveOrUpdate(note);
  27.     return note;
  28.   }
  29.   /**
  30.    *
  31.    * @param id long
  32.    * @param blogID long
  33.    * @return Note
  34.    * @todo Implement this com.opensource.blog.dao.NoteDAO method
  35.    */
  36.   public Note findNoteByID_BlogID(long id, long blogID) {
  37.     Object[] o = {
  38.         new Long(id), new Long(blogID)};
  39.     List l = this.getHibernateTemplate().find(LOAD_BY_ID_BLOGID, o);
  40.     if (l == null || l.isEmpty()) {
  41.       return null;
  42.     }
  43.     else {
  44.       return (Note) l.get(0);
  45.     }
  46.   }
  47.   /**
  48.    *
  49.    * @param artID long
  50.    * @return int
  51.    * @todo Implement this com.opensource.blog.dao.NoteDAO method
  52.    */
  53.   public int getNoteCountByArtID(long artID) {
  54.     List l = this.getHibernateTemplate().find(GET_COUNT_BY_ARTID, new Long(artID));
  55.     if (l == null || l.isEmpty()) {
  56.       return 0;
  57.     }
  58.     else {
  59.       return ( (Integer) l.get(0)).intValue();
  60.     }
  61.   }
  62.   /**
  63.    *
  64.    * @param artID long
  65.    * @return List
  66.    * @todo Implement this com.opensource.blog.dao.NoteDAO method
  67.    */
  68.   public List findNotesByArtID(long artID) {
  69.     return this.getHibernateTemplate().find(LOADS_BY_ARTID, new Long(artID));
  70.   }
  71.   /**
  72.    *
  73.    * @param blogID long
  74.    * @return int
  75.    * @todo Implement this com.opensource.blog.dao.NoteDAO method
  76.    */
  77.   public int getNoteCountByBlogID(long blogID) {
  78.     List l = this.getHibernateTemplate().find(GET_COUNT_BY_BLOGID, new Long(blogID));
  79.     if (l == null || l.isEmpty()) {
  80.       return 0;
  81.     }
  82.     else {
  83.       return ( (Integer) l.get(0)).intValue();
  84.     }
  85.   }
  86.   /**
  87.    *
  88.    * @param blogID long
  89.    * @param firstResult int
  90.    * @param maxResults int
  91.    * @return List
  92.    * @todo Implement this com.opensource.blog.dao.NoteDAO method
  93.    */
  94.   public List getNotesByBlogID(final long blogID, final int firstResult, final int maxResults) {
  95.     return getHibernateTemplate().executeFind(new HibernateCallback() {
  96.       public Object doInHibernate(Session s) throws HibernateException, SQLException {
  97.           Query query = s.createQuery(LOADS_BY_BLOGID);
  98.           query.setLong(0, blogID);
  99.           query.setFirstResult(firstResult);
  100.           query.setMaxResults(maxResults);
  101.           return query.list();
  102.       }
  103.     });
  104.   }
  105.   /**
  106.    *
  107.    * @param note Note
  108.    * @todo Implement this com.opensource.blog.dao.NoteDAO method
  109.    */
  110.   public void removeNote(Note note) {
  111.     this.getHibernateTemplate().delete(note);
  112.   }
  113. }