⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 productdao.java

📁 基于Struts的网络商店源码。使用Hibernate技术
💻 JAVA
字号:
package com.sush.webstore.store.data.dao.hibernate;

import java.math.BigInteger;
import java.util.HashSet;
import java.util.Set;

import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;

import com.sush.webstore.store.data.dao.IProductDAO;
import com.sush.webstore.store.data.dao.hibernate.util.HibernateUtil;
import com.sush.webstore.store.domain.IItem;
import com.sush.webstore.store.domain.IProduct;
import com.sush.webstore.store.domain.beans.Item;
import com.sush.webstore.store.domain.beans.Product;

public class ProductDAO implements IProductDAO {

	/*
	 * @param product @param item @return
	 */
	public boolean addItem(IProduct product, IItem item) {

		if (product == null || item == null)
			return false;

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();

		try {
			session.beginTransaction();
			session.update(product);
			((Product) product).addItem((Item) item);
			session.save(item);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}
		return true;
	}

	public Set<IItem> getItems(IProduct product) {

		if (product == null)
			return null;

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Set<Item> set = null;

		try {
			session.beginTransaction();
			session.refresh(product);
			Hibernate.initialize(((Product) product).getItems());
			set = ((Product) product).getItems();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}
		return new HashSet<IItem>(set);
	}

	/*
	 * @param id @return
	 */
	public IProduct getProduct(long id) {

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		IProduct product = null;

		try {
			session.beginTransaction();
			product = (IProduct) session.load(Product.class, new Long(id));
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}
		return product;
	}

	/*
	 * @param product @return
	 */
	public boolean hasDisplayableItem(IProduct product) {

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		BigInteger count = null;

		try {
			session.beginTransaction();
			Query query = session.createSQLQuery("select count(*) from ITEM "
					+ "item where PRODUCT_ID = ?");
			query.setString(0, new Long(product.getId()).toString());

			count = (BigInteger) query.uniqueResult();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}

		if (count == null)
			return false;
		return count.intValue() > 0 ? true : false;
	}

	/*
	 * @param product @return
	 */
	public Integer getItemsCount(IProduct product) {

		if (product == null)
			return 0;

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		BigInteger count = null;

		try {
			session.beginTransaction();
			Query query = session.createSQLQuery("select count(*) from ITEM "
					+ "item where PRODUCT_ID = ?");
			query.setString(0, new Long(product.getId()).toString());

			count = (BigInteger) query.uniqueResult();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}
		return count.intValue();
	}

	/*
	 * @param product @param item @return
	 */
	public boolean removeItem(IProduct product, IItem item) {

		if (product == null || item == null)
			return false;

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		try {
			session.beginTransaction();
			session.update(product);
			((Product) product).removeItem((Item) item);
			session.delete(item);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}
		return true;
	}

	/*
	 * @param category @return
	 */
	public boolean updateProduct(IProduct product) {

		if (product == null)
			return false;

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();

		try {
			session.beginTransaction();
			session.update(product);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}
		return true;
	}
}

⌨️ 快捷键说明

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