📄 newshibernatedao.java.svn-base
字号:
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 + -