dishhibernatedao.java.svn-base
来自「spring+hibernate做的网上订餐系统」· SVN-BASE 代码 · 共 177 行
SVN-BASE
177 行
package com.pure.dao.hibernate;
import java.sql.SQLException;
import java.util.List;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Expression;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.HibernateCallback;
import com.pure.dao.DishDAO;
import com.pure.domain.Dish;
import com.pure.domain.Image;
import com.pure.page.Page;
import com.pure.sys.Application;
import com.pure.sys.Constant;
import com.pure.util.PureUtil;
/**
* 菜品DAO接口实现类
*
* @author pure
*
*/
public class DishHibernateDAO extends BaseDao implements DishDAO {
protected final Log logger = LogFactory.getLog(getClass());
public void insertDish(Dish dish) throws DataAccessException {
this.getHibernateTemplate().save(dish);
}
// TODO 这里需要注意一下,关于merge方法
public void updateDish(Dish dish) throws DataAccessException {
this.getHibernateTemplate().merge(dish);
}
public List getDishList(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 getDishList(final int num, final String hql) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,
SQLException {
Query query = s.createQuery(hql);
query.setFirstResult(0);
query.setMaxResults(num);
List list = query.list();
return list;
}
});
}
public List FindByDish(final Page page, final Dish dish) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,
SQLException {
Criteria cr = s.createCriteria(Dish.class);
cr.add(Expression.like("name", "%" + dish.getName() + "%"));
cr.setFirstResult(page.getStartRs());
cr.setMaxResults(page.getPerPage());
List list = cr.list();
return list;
}
});
}
public Dish getDish(final int id) {
List dataList = this.getHibernateTemplate().find("from Dish dish where dish.id = ?", new Long(id));
if (dataList.size() == 0) {
return null;
} else {
return (Dish) dataList.get(0);
}
}
public void delDish(final int id) {
getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,SQLException {
Query query = s.createQuery("delete Dish where id=:id");
query.setInteger("id", id);
query.executeUpdate();
return null;
}
});
}
public int getTotalByDish(final Dish dish) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,SQLException {
Criteria cr = s.createCriteria(Dish.class);
cr.add(Expression.like("name", "%" + dish.getName() + "%"));
List list = cr.list();
return list;
}
}).size();
}
public void hot(final int id) {
getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,SQLException {
Query query = s.createQuery("update Dish set hot = hot+1 where id=:id");
query.setInteger("id", id);
query.executeUpdate();
return null;
}
});
}
/**
* 取出指定ID菜品的所有图片
*/
public List getDishImages(int id) {
String hql = "select image.id,image.name,image.newname,image.size from Image as image where image.dish.id="+id;
return this.getHibernateTemplate().find(hql);
}
public Image getImage(int id){
List dataList = this.getHibernateTemplate().find("from Image image where image.id = ?", new Long(id));
if (dataList.size() == 0) {
return null;
} else {
return (Image) dataList.get(0);
}
}
public Set findDishImages(int id){
/*String hql = "select image.id,image.name,image.newname,image.size from Image as image where image.dish.id="+id;
List images = this.getHibernateTemplate().find(hql);
Set imagesSet = new HashSet();
for (Iterator iter = images.iterator(); iter.hasNext();) {
imagesSet.add((Image)iter.next());
}
return imagesSet;*/
return null;
}
public void delImage(int id){
Image image = getImage(id);
if(image!=null){
PureUtil.delFile(Application.realPath+Constant.IMAGE_UPLOADPATH+image.getNewname());
this.getHibernateTemplate().delete(image);
this.getHibernateTemplate().flush();
}
}
public List getHotDish(){
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,SQLException {
Query query = s.createQuery(" from Dish as dish order by hot desc");
query.setFirstResult(0);
query.setMaxResults(4);
List list = query.list();
return list;
}
});
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?