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

Jsp/Servlet

开发平台:

Java

  1. package com.opensource.blog.dao.hibernate;
  2. import org.springframework.orm.hibernate3.support.*;
  3. import com.opensource.blog.dao.ArticleDAO;
  4. import com.opensource.blog.model.Article;
  5. import java.util.List;
  6. import org.hibernate.Session;
  7. import org.hibernate.HibernateException;
  8. import org.hibernate.Query;
  9. import org.springframework.orm.hibernate3.HibernateCallback;
  10. import java.sql.SQLException;
  11. public class ArticleHibernateDAO
  12.     extends HibernateDaoSupport implements ArticleDAO {
  13.   private static final String LOAD_BY_ID_BLOGID = "from Article where id = ? and blogid = ?";
  14.   private static final String LOADS_BY_BLOGID =
  15.       "from Article where blogid = ? order by posttime desc";
  16.   private static final String GET_NUM_BY_BLOGID = "select count(*) from Article where blogid = ?";
  17.   private static final String GET_NUM_BY_BLOGID_ISHIDE =
  18.       "select count(*) from Article where blogid = ? and ishide = ?";
  19.   private static final String LOADS_BY_BLOGID_ISHIDE =
  20.       "from Article where blogid = ? and ishide = ? order by posttime desc";
  21.   private static final String LOADS_BY_SORTID = "from Article where sortid = ? and blogid = ?";
  22.   private static final String GET_NUM_BY_SORTID =
  23.       "select count(*) from Article where sortid = ? and blogid = ?";
  24.   private static final String LOADS_BY_POSTDATE =
  25.       "from Article where blogid = ? and postdate = ? order by id desc";
  26.   private static final String GET_NUM_BY_POSTDATE =
  27.       "select count(*) from Article where blogid = ? and postdate = ?";
  28.   private static final String LOADS_GROUPBY_POSTTIME =
  29.       "select postdate from Article where blogid = ? group by postdate";
  30.   private static final String GET_NUM_ALL = "select count(*) from Article";
  31.   private static final String LOADS_ALL = "from Article order by id desc";
  32.   public ArticleHibernateDAO() {
  33.   }
  34.   /**
  35.    *
  36.    * @param article Article
  37.    * @return Article
  38.    * @todo Implement this com.opensource.blog.dao.ArticleDAO method
  39.    */
  40.   public Article saveArticle(Article article) {
  41.     this.getHibernateTemplate().saveOrUpdate(article);
  42.     return article;
  43.   }
  44.   /**
  45.    *
  46.    * @param id long
  47.    * @param blogID long
  48.    * @return Article
  49.    * @todo Implement this com.opensource.blog.dao.ArticleDAO method
  50.    */
  51.   public Article findArticleByID_BlogID(long id, long blogID) {
  52.     Object[] o = {new Long(id), new Long(blogID)};
  53.     List l = this.getHibernateTemplate().find(LOAD_BY_ID_BLOGID, o);
  54.     if (l == null || l.isEmpty()) {
  55.       return null;
  56.     }
  57.     else {
  58.       return (Article) l.get(0);
  59.     }
  60.   }
  61.   /**
  62.    *
  63.    * @param blogID long
  64.    * @return int
  65.    * @todo Implement this com.opensource.blog.dao.ArticleDAO method
  66.    */
  67.   public int getArticleNumByBlogID(long blogID) {
  68.     List l = this.getHibernateTemplate().find(GET_NUM_BY_BLOGID, new Long(blogID));
  69.     if (l == null || l.isEmpty()) {
  70.       return 0;
  71.     }
  72.     else {
  73.       return ( (Integer) l.get(0)).intValue();
  74.     }
  75.   }
  76.   public int getArticleNumByBlogID_IsHide(long blogID, int ishide) {
  77.     Object[] o = {new Long(blogID), new Long(ishide)};
  78.     List l = this.getHibernateTemplate().find(GET_NUM_BY_BLOGID_ISHIDE, o);
  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.ArticleDAO method
  93.    */
  94.   public List findArticlesByBlogID(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.   public List findArticlesByBlogID_IsHide(final long blogID, final int ishide,
  106.                                           final int firstResult, final int maxResults) {
  107.     return getHibernateTemplate().executeFind(new HibernateCallback() {
  108.       public Object doInHibernate(Session s) throws HibernateException, SQLException {
  109.           Query query = s.createQuery(LOADS_BY_BLOGID_ISHIDE);
  110.           query.setLong(0, blogID);
  111.           query.setLong(1, ishide);
  112.           query.setFirstResult(firstResult);
  113.           query.setMaxResults(maxResults);
  114.           return query.list();
  115.       }
  116.     });
  117.   }
  118.   /**
  119.    *
  120.    * @param sortID long
  121.    * @return int
  122.    * @todo Implement this com.opensource.blog.dao.ArticleDAO method
  123.    */
  124.   public int getArticleNumBySort(long blogID, long sortID) {
  125.     Object[] o = {new Long(sortID), new Long(blogID)};
  126.     List l = this.getHibernateTemplate().find(GET_NUM_BY_SORTID, o);
  127.     if (l == null || l.isEmpty()) {
  128.       return 0;
  129.     }
  130.     else {
  131.       return ( (Integer) l.get(0)).intValue();
  132.     }
  133.   }
  134.   /**
  135.    *
  136.    * @param sortID long
  137.    * @param firstResult int
  138.    * @param maxResults int
  139.    * @return List
  140.    * @todo Implement this com.opensource.blog.dao.ArticleDAO method
  141.    */
  142.   public List findArticlesBySort(final long blogID, final long sortID, final int firstResult,
  143.                                  final int maxResults) {
  144.     return getHibernateTemplate().executeFind(new HibernateCallback() {
  145.       public Object doInHibernate(Session s) throws HibernateException, SQLException {
  146.           Query query = s.createQuery(LOADS_BY_SORTID);
  147.           query.setLong(0, sortID);
  148.           query.setLong(1, blogID);
  149.           query.setFirstResult(firstResult);
  150.           query.setMaxResults(maxResults);
  151.           return query.list();
  152.       }
  153.     });
  154.   }
  155.   public List findArticlesAllBySort(long blogID, long sortID) {
  156.     Object[] o = {new Long(blogID), new Long(sortID)};
  157.     return this.getHibernateTemplate().find(LOADS_BY_SORTID, o);
  158.   }
  159.   /**
  160.    *
  161.    * @param postDate String
  162.    * @return int
  163.    * @todo Implement this com.opensource.blog.dao.ArticleDAO method
  164.    */
  165.   public int getArticleNumByPostDate(long blogID, String postDate) {
  166.     Object[] o = {new Long(blogID), postDate};
  167.     List l = this.getHibernateTemplate().find(GET_NUM_BY_POSTDATE, o);
  168.     if (l == null || l.isEmpty()) {
  169.       return 0;
  170.     }
  171.     else {
  172.       return ( (Integer) l.get(0)).intValue();
  173.     }
  174.   }
  175.   /**
  176.    *
  177.    * @param postDate String
  178.    * @param firstResult int
  179.    * @param maxResults int
  180.    * @return List
  181.    * @todo Implement this com.opensource.blog.dao.ArticleDAO method
  182.    */
  183.   public List findArticlesByPostDate(final long blogID, final String postDate,
  184.                                      final int firstResult, final int maxResults) {
  185.     return getHibernateTemplate().executeFind(new HibernateCallback() {
  186.       public Object doInHibernate(Session s) throws HibernateException, SQLException {
  187.           Query query = s.createQuery(LOADS_BY_POSTDATE);
  188.           query.setLong(0, blogID);
  189.           query.setString(1, postDate);
  190.           query.setFirstResult(firstResult);
  191.           query.setMaxResults(maxResults);
  192.           return query.list();
  193.       }
  194.     });
  195.   }
  196.   public List findArticlesGroupByPostDate(long blogID) {
  197.     return this.getHibernateTemplate().find(LOADS_GROUPBY_POSTTIME, new Long(blogID));
  198.   }
  199.   /**
  200.    *
  201.    * @return int
  202.    */
  203.   public int getArticleAllNum() {
  204.     List l = this.getHibernateTemplate().find(GET_NUM_ALL);
  205.     if (l == null || l.isEmpty()) {
  206.       return 0;
  207.     }
  208.     else {
  209.       return ( (Integer) l.get(0)).intValue();
  210.     }
  211.   }
  212.   /**
  213.    *
  214.    * @param firstResult int
  215.    * @param maxResults int
  216.    * @return List
  217.    */
  218.   public List findArticlesAll(final int firstResult, final int maxResults) {
  219.     return getHibernateTemplate().executeFind(new HibernateCallback() {
  220.       public Object doInHibernate(Session s) throws HibernateException, SQLException {
  221.           Query query = s.createQuery(LOADS_ALL);
  222.           query.setFirstResult(firstResult);
  223.           query.setMaxResults(maxResults);
  224.           return query.list();
  225.       }
  226.     });
  227.   }
  228.   /**
  229.    *
  230.    * @param article Article
  231.    * @todo Implement this com.opensource.blog.dao.ArticleDAO method
  232.    */
  233.   public void removeArticle(Article article) {
  234.     this.getHibernateTemplate().delete(article);
  235.   }
  236. }