67,550
社区成员




import java.sql.SQLException;
import java.util.List;
import javax.annotation.Resource;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Component;
import com.ld.blog.common.MyConfig;
import com.ld.blog.dao.ArticleDao;
import com.ld.blog.model.Article;
import com.ld.blog.service.ListenService;
@Component("ArticleDao")
public class ArticleDaoImpl implements ArticleDao{
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public void save(Article article) {
this.hibernateTemplate.save(article);
this.hibernateTemplate.flush();
this.hibernateTemplate.clear();
}
public List showArticle(int userId) {
ListenService ls=(ListenService) MyConfig.getServiceObj("ListenService");
List listenId=ls.getListenByUserId(userId);
String tempStr="";
String hql="";
if(!listenId.isEmpty())
{
for(int i=0;i<listenId.size();i++)
{
tempStr=tempStr+listenId.get(i).toString()+",";
}
tempStr=tempStr+userId;
hql="from Article a where a.userId in("+tempStr+") order by a.id desc";
}
else
{
hql="from Article a where a.userId="+userId+"order by a.id desc";
}
System.out.println(hql);
List articleList=this.hibernateTemplate.find(hql);
this.hibernateTemplate.flush();
this.hibernateTemplate.clear();
return articleList;
}
//ʵ�ַ�ҳ��ʾ
public List findByPageBean(final int start, final int pageSize,final String hql) throws Exception
{
/* ListenService ls=(ListenService) MyConfig.getServiceObj("ListenService");
List listenId=ls.getListenByUserId(userId);
String tempStr="";
for(int i=0;i<listenId.size();i++)
{
tempStr=tempStr+listenId.get(i).toString()+",";
}
tempStr=tempStr+userId;*/
List list = null;
// hql="from Article a where a.userId in("+tempStr+") order by a.id desc";
try {
list = this.getHibernateTemplate().executeFind(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(start);
query.setMaxResults(pageSize);
List list = query.list();
return list;
}
});
} catch (Exception e) {
throw e;
}
return list;
}
public int getArticleNum(int userId) {
return this.showArticle(userId).size();
}
public int getPageNum(int userId) {
return this.getArticleNum(userId)/10+1;
}
public int getMyArticleNum(int userId) {
// TODO Auto-generated method stub
String hql="from Article a where a.userId="+userId;
List l=this.hibernateTemplate.find(hql);
return l.size();
}
}