📄 dishhibernatedao.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.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.page.Page;
/**
* 菜品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;
}
});
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -