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

Jsp/Servlet

开发平台:

Java

  1. package com.opensource.blog.dao.hibernate;
  2. import org.springframework.orm.hibernate3.support.*;
  3. import com.opensource.blog.dao.BlogDAO;
  4. import com.opensource.blog.model.Blog;
  5. import java.util.*;
  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 BlogHibernateDAO
  12.     extends HibernateDaoSupport implements BlogDAO {
  13.   private static final String LOAD_BY_USERNAME = "from Blog where username = ?";
  14.   private static final String GET_ALL_NUM = "select count(*) from Blog";
  15.   private static final String LOADS_ALL = "from Blog order by id desc";
  16.   public BlogHibernateDAO() {
  17.     super();
  18.   }
  19.   /**
  20.    *
  21.    * @param blog Blog
  22.    * @return Blog
  23.    * @todo Implement this com.opensource.blog.dao.BlogDAO method
  24.    */
  25.   public Blog saveBlog(Blog blog) {
  26.     this.getHibernateTemplate().saveOrUpdate(blog);
  27.     return blog;
  28.   }
  29.   /**
  30.    *
  31.    * @param id long
  32.    * @return Blog
  33.    */
  34.   public Blog findBlogByID(long id) {
  35.     return (Blog)this.getHibernateTemplate().get(Blog.class, new Long(id));
  36.   }
  37.   /**
  38.    *
  39.    * @return Blog
  40.    * @param userName String
  41.    * @todo Implement this com.opensource.blog.dao.BlogDAO method
  42.    */
  43.   public Blog findBlogByUserName(String userName) {
  44.     List l = this.getHibernateTemplate().find(LOAD_BY_USERNAME, userName);
  45.     if (l == null || l.isEmpty()) {
  46.       return null;
  47.     }
  48.     else {
  49.       return (Blog) l.get(0);
  50.     }
  51.   }
  52.   /**
  53.    *
  54.    * @return int
  55.    */
  56.   public int getBlogCount() {
  57.     List l = this.getHibernateTemplate().find(GET_ALL_NUM);
  58.     if (l == null || l.isEmpty()) {
  59.       return 0;
  60.     }
  61.     else {
  62.       return ( (Integer) l.get(0)).intValue();
  63.     }
  64.   }
  65.   /**
  66.    *
  67.    * @param firstResult int
  68.    * @param maxResults int
  69.    * @return List
  70.    */
  71.   public List findBlogAll(final int firstResult, final int maxResults) {
  72.     return getHibernateTemplate().executeFind(new HibernateCallback() {
  73.       public Object doInHibernate(Session s) throws HibernateException, SQLException {
  74.           Query query = s.createQuery(LOADS_ALL);
  75.           query.setFirstResult(firstResult);
  76.           query.setMaxResults(maxResults);
  77.           return query.list();
  78.       }
  79.     });
  80.   }
  81. }