package dao.impl;
import dao.PictureNewsDao;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import pojo.Message;
import pojo.PictureNews;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;
/**
* User: wangyan
* Date: 12-5-23
* Time: 上午9:46
*/
public class PictureNewsDaoImpl implements PictureNewsDao {
private HibernateTemplate template;
private SessionFactory factory;
public HibernateTemplate getTemplate() {
if (template == null) {
template = new HibernateTemplate(this.factory);
}
return template;
}
public void setTemplate(HibernateTemplate template) {
this.template = template;
}
public SessionFactory getFactory() {
return factory;
}
public void setFactory(SessionFactory factory) {
this.factory = factory;
}
@Override
public Serializable savePictureNews(PictureNews pictureNews) {
return this.getTemplate().save(pictureNews);
}
@Override
public void updatePictureNews(PictureNews pictureNews) {
this.getTemplate().saveOrUpdate(pictureNews);
}
@Override
public void deletePictureNewsById(final int id) {
List picturenews = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews as p where p.id= :id").setInteger("id", id);
return query.list();
}
});
PictureNews pictureNews= (PictureNews) picturenews.get(0);
this.getTemplate().delete(pictureNews);
}
@Override
public int getPictureNewsTotalCount() {
List messages = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(" from PictureNews as p where p.type= :type").setString("type", "picturenews");
return query.list();
}
});
return messages.size();
}
@Override
public int getPictureNewsTotalPage(int pageSize) {
int totalCount=this.getPictureNewsTotalCount();
int totalPage=((totalCount+pageSize)-1)/pageSize;
return totalPage;
}
@Override
public int getAccomplishmentTotalCount() {
List messages = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(" from PictureNews as p where p.type= :type").setString("type", "accomplishment");
return query.list();
}
});
return messages.size();
}
@Override
public int getAccomplishmentTotalPage(int pageSize) {
int totalCount=this.getAccomplishmentTotalCount();
int totalPage=((totalCount+pageSize)-1)/pageSize;
return totalPage;
}
@Override
public List<PictureNews> getPictureNews(final int pageSize, final int currentPage) {
List notices = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews as p where p.type= :type").setString("type","picturenews");
query.setMaxResults(pageSize);
query.setFirstResult(pageSize*(currentPage-1));
return query.list();
}
});
return notices;
}
@Override
public List<PictureNews> getAccomplishment(final int pageSize, final int currentPage) {
List notices = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews as p where p.type= :type").setString("type","accomplishment");
query.setMaxResults(pageSize);
query.setFirstResult(pageSize*(currentPage-1));
return query.list();
}
});
return notices;
}
@Override
public List<PictureNews> getAllPictureNews() {
List picturenewses = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews as p where p.type= :type ").setString("type","picturenews");
return query.list();
}
});
return picturenewses;
}
@Override
public PictureNews getOnePictureNewsByID(final int id) {
List picturenewses = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews as m where m.type= :type and m.id= :id");
query.setString("type","picturenews");
query.setInteger("id",id);
return query.list();
}
});
if(picturenewses==null)
return null;
PictureNews picturenews= (PictureNews) picturenewses.get(0);
return picturenews;
}
@Override
public List<PictureNews> getAllAccomplishment() {
List accomplishments = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews as p where p.type= :type ").setString("type","accomplishment");
return query.list();
}
});
return accomplishments;
}
@Override
public PictureNews getOneAccomplishmentByID(final int id) {
List accomplishments = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews as m where m.type= :type and m.id= :id");
query.setString("type","accomplishment");
query.setInteger("id",id);
return query.list();
}
});
if(accomplishments==null)
return null;
PictureNews accomplishment= (PictureNews) accomplishments.get(0);
return accomplishment;
}
public List<PictureNews> getAllPictureMessages() {
List picturemessages = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews ");
return query.list();
}
});
return picturemessages;
}
@Override
public int getPictureMessageTotalCount() {
List messages = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(" from PictureNews");
return query.list();
}
});
return messages.size();
}
@Override
public int getPictureMessageTotalPage(int pageSize) {
int totalCount=this.getPictureMessageTotalCount();
int totalPage=((totalCount+pageSize)-1)/pageSize;
return totalPage;
}
@Override
public List<PictureNews> getPictureMessage(final int pageSize, final int currentPage) {
List notices = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews");
query.setMaxResults(pageSize);
query.setFirstResult(pageSize*(currentPage-1));
return query.list();
}
});
return notices;
}
@Override
public PictureNews getOnePictureMessageByID(final int id) {
List picturemessages = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews as m where m.id= :id");
query.setInteger("id",id);
return query.list();
}
});
if(picturemessages==null)
return null;
PictureNews picturemessage= (PictureNews) picturemessages.get(0);
return picturemessage;
}
@Override
public List<PictureNews> getThreePicture() {
List pictures = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews as p where p.type=:type order by id desc ").setString("type","picturenews");
query.setMaxResults(3);
return query.list();
}
});
return pictures;
}
@Override
public List<PictureNews> getFiveAccomplishment() {
List pictures = this.getTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery("from PictureNews as p where p.type=:type order by id desc ").setString("type","accomplishment");
query.setMaxResults(5);
return query.list();
}
});
return pictures;
}
}