⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newshibernatedao.java

📁 这是基于spring +hibernate的项目
💻 JAVA
字号:
package com.pure.dao.hibernate;

import java.sql.SQLException;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.HibernateCallback;

import com.pure.dao.NewsDAO;
import com.pure.domain.News;
import com.pure.freemarker.MakeFile;
import com.pure.freemarker.TemplateParam;
import com.pure.page.Page;

/**
 * 新闻DAO接口实现类
 * 
 * @author pure
 * 
 */
public class NewsHibernateDAO extends BaseDao implements NewsDAO {
	protected final Log logger = LogFactory.getLog(getClass());

	/**
	 * 新增一条新闻
	 * 
	 * @param news
	 *            新闻数据对象
	 */
	public void insertNews(News news) throws DataAccessException {
		TemplateParam templateParam = SetTemplateParam(news);
		// 生成静态新闻
		news.setFilename(new MakeFile().make(news, templateParam));
		this.getHibernateTemplate().save(news);

	}

	/**
	 * 修改新闻
	 * 
	 * @param news
	 * 
	 */
	public void updateNews(News news) throws DataAccessException {
		TemplateParam templateParam = SetTemplateParam(news);
		// 更新原来的静态新闻
		new MakeFile().update(news, templateParam);
		this.getHibernateTemplate().update(news);
	}

	/**
	 * 根据指定翻页器返回list结果集
	 * 
	 * @param page
	 *            翻页器
	 * @return 指定翻页后的结果集
	 */
	public List getNewsList(final Page page) {
		return getHibernateTemplate().executeFind(new HibernateCallback() {
			public Object doInHibernate(Session s) throws HibernateException,
					SQLException {
				Query query = s.createQuery(page.getHql());
				query.setFirstResult(page.getStartRs());
				query.setMaxResults(page.getPerPage());
				List list = query.list();
				return list;

			}
		});
	}

	public List getNewsList(final int num) {
		return getHibernateTemplate().executeFind(new HibernateCallback() {
			public Object doInHibernate(Session s) throws HibernateException,
					SQLException {
				Query query = s
						.createQuery("from News as news left join fetch news.newssort where news.newssort.code='news' order by news.id desc");
				query.setFirstResult(0);
				query.setMaxResults(num);
				List list = query.list();
				return list;

			}
		});
	}

	/**
	 * 取得指定ID的新闻
	 * 
	 * @param id
	 * 
	 */
	public News getNews(final int id) {
		List dataList = this
				.getHibernateTemplate()
				.find(
						"from News news left join fetch news.newssort where news.id = ?",
						new Long(id));
		if (dataList.size() == 0) {
			return null;
		} else {
			return (News) dataList.get(0);
		}
	}

	/**
	 * 删除指定id新闻
	 * 
	 * @param id
	 *            要删除的新闻id
	 */
	public void delNews(final int id) {
		getHibernateTemplate().executeFind(new HibernateCallback() {
			public Object doInHibernate(Session s) throws HibernateException,
					SQLException {
				Query query = s.createQuery("delete News where id=:id");
				query.setInteger("id", id);
				query.executeUpdate();
				return null;
			}
		});
	}

	/**
	 * 设计模板参数
	 * 
	 * @param news
	 * @return
	 */
	private TemplateParam SetTemplateParam(News news) {
		// 设置模板参数
		TemplateParam templateParam = new TemplateParam();
		templateParam.setRealPath(news.getRealPath());
		templateParam.setTemplateName("news.ftl");
		return templateParam;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -