www.pudn.com > j2EEnews_struts_hibernate_spring.rar > NewsDao.java


package com.news.dao.impl; 
 
import java.sql.SQLException; 
import java.util.Date; 
import java.util.List; 
 
import org.hibernate.Query; 
import org.hibernate.classic.Session; 
import org.springframework.orm.hibernate3.HibernateCallback; 
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 
 
import com.news.bean.News; 
import com.news.dao.INewsDao; 
import com.news.page.Page; 
import com.news.struts.form.AddNewsForm; 
import com.news.utils.GetDate; 
import com.news.utils.GetId; 
 
 
public class NewsDao extends HibernateDaoSupport implements INewsDao{ 
 
	public void insertNews(AddNewsForm addNewsForm) { 
		Date d = new Date(); 
		News news = new News(); 
		news.setId(GetId.getId()); 
		news.setNewauthor(addNewsForm.getNewauthor()); 
		news.setNewcontent(addNewsForm.getNewcontent()); 
		news.setNewfrom(addNewsForm.getNewfrom()); 
		news.setNewtitle(addNewsForm.getNewtitle()); 
		news.setCount("0"); 
		news.setNewdate(GetDate.getDate1(d)); 
		news.setDate2(GetDate.getDate2(d)); 
		news.setTypeid(addNewsForm.getTypeid()); 
		getHibernateTemplate().save(news); 
		 
	} 
 
	public void findNews(AddNewsForm addNewsForm) { 
		String hql ="from News order by date2 desc"; 
		Session s=getHibernateTemplate().getSessionFactory().openSession(); 
		Query q = s.createQuery(hql); 
		List list = q.list(); 
		addNewsForm.setList(list); 
		s.close(); 
	} 
	 
	public void findNews2(AddNewsForm addNewsForm) { 
		String hql = "from News where typeid = ? order by date2 desc"; 
		Session s = getHibernateTemplate().getSessionFactory().openSession(); 
		Query q = s.createQuery(hql); 
		q.setParameter(0,addNewsForm.getTypeid()); 
		List list = q.list(); 
		addNewsForm.setList(list); 
		s.close(); 
	} 
 
	public void deleteNews(AddNewsForm addNewsForm) { 
		News news = (News) getHibernateTemplate().load(News.class,addNewsForm.getId()); 
		getHibernateTemplate().delete(news); 
		 
	} 
 
	public void changeNews(AddNewsForm addNewsForm) { 
		News news = (News) getHibernateTemplate().load(News.class,addNewsForm.getId()); 
		addNewsForm.setId(news.getId()); 
		addNewsForm.setNewauthor(news.getNewauthor()); 
		addNewsForm.setNewcontent(news.getNewcontent()); 
		addNewsForm.setNewfrom(news.getNewfrom()); 
		addNewsForm.setNewtitle(news.getNewtitle()); 
		 
	} 
 
	public void change2News(AddNewsForm addNewsForm) { 
		News news = (News) getHibernateTemplate().load(News.class,addNewsForm.getId()); 
		news.setId(addNewsForm.getId()); 
		//news.setNewauthor(addNewsForm.getNewauthor()); 
		news.setNewcontent(addNewsForm.getNewcontent()); 
		news.setNewfrom(addNewsForm.getNewfrom()); 
		news.setNewtitle(addNewsForm.getNewtitle()); 
		getHibernateTemplate().save(news); 
	} 
 
	/** 
	 * ·ÖÒ³²éѯ 
	 */ 
	public List getList(Page page,AddNewsForm addNewsForm){ 
		final Page p = page; 
		final AddNewsForm form = addNewsForm; 
		return getHibernateTemplate().executeFind(new HibernateCallback() { 
			public Object doInHibernate(org.hibernate.Session s) throws org.hibernate.HibernateException, SQLException { 
				Query query = s.createQuery(p.getHql()); 
				query.setParameter(0,form.getTypeid()); 
				query.setFirstResult(p.getStartRs()); 
				query.setMaxResults(p.getPerPage()); 
				List list = query.list();				 
				return list; 
			} 
		}); 
	} 
	public int getTotal(String hql,AddNewsForm addNewsForm){ 
		//System.out.println("sss"); 
		Session s = getHibernateTemplate().getSessionFactory().openSession(); 
		Query q = s.createQuery(hql); 
		q.setParameter(0,addNewsForm.getTypeid()); 
		List result = q.list(); 
		getHibernateTemplate().getSessionFactory().close(); 
		if (null != result && !result.isEmpty()) { 
			return (result.size()); 
		} else { 
			return 0; 
		} 
	} 
 
}