orderhibernatedao.java.svn-base

来自「spring+hibernate做的网上订餐系统」· SVN-BASE 代码 · 共 92 行

SVN-BASE
92
字号
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.OrderDAO;
import com.pure.domain.Member;
import com.pure.domain.Order;
import com.pure.page.Page;

/**
 * 订单DAO接口实现类
 * 
 * @author pure
 * 
 */
public class OrderHibernateDAO extends BaseDao implements OrderDAO {
	protected final Log logger = LogFactory.getLog(getClass());

	public void insertOrder(Order order) throws DataAccessException {
		this.getHibernateTemplate().save(order);
	}

	public List getOrderList(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 Order getOrder(final int id) {
		List dataList = this.getHibernateTemplate().find(
				"from Order where id = ?", new Long(id));
		if (dataList.size() == 0) {
			return null;
		} else {
			return (Order) dataList.get(0);
		}
	}

	public void delOrder(final int id) {
		getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session s) throws HibernateException,
					SQLException {
				// TODO: 需要手动设置line_items表的级联删除
				Query query = s.createQuery("delete from Order where id=:id");
				query.setInteger("id", id);
				query.executeUpdate();
				return null;
			}
		});
	}

	public void settingOrder(final int id) {
		getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session s) throws HibernateException,
					SQLException {
				Query query = s
						.createQuery("update from Order set state='Y' where id=:id");
				query.setInteger("id", id);
				query.executeUpdate();
				return null;
			}
		});
	}

	public Order getOrderByMember(int id, Member member) {
		List dataList = this.getHibernateTemplate().find(
				"from Order where id = ? and member_id=? ",
				new Object[] { new Long(id), member.getId() });
		if (dataList.size() == 0) {
			return null;
		} else {
			return (Order) dataList.get(0);
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?