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

📄 categorydao.java

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

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

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

import com.sush.webstore.store.data.dao.ICategoryDAO;
import com.sush.webstore.store.data.dao.hibernate.util.HibernateUtil;
import com.sush.webstore.store.domain.ICategory;
import com.sush.webstore.store.domain.IProduct;
import com.sush.webstore.store.domain.beans.Category;
import com.sush.webstore.store.domain.beans.Product;

public class CategoryDAO implements ICategoryDAO {

	/*
	 * @param category @param product @return
	 */
	public boolean addProduct(ICategory category, IProduct product) {

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

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		try {
			session.beginTransaction();
			session.update(category);
			((Category) category).addProduct((Product) product);
			session.save(product);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}
		return true;
	}

	/*
	 * @param category @param subCategory @return
	 */
	public boolean addSubCategory(ICategory category, ICategory subCategory) {

		if (subCategory == null || category == null)
			return false;

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		try {
			session.beginTransaction();
			session.update(category);
			((Category) subCategory).setSupCategory((Category) category);
			session.save(subCategory);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}
		return true;
	}

	/*
	 * @param id @return
	 */
	public ICategory getCategory(long id) {

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		ICategory category = null;
		try {
			session.beginTransaction();
			category = (ICategory) session.get(Category.class, new Long(id));
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}
		return category;
	}

	/*
	 * @param category @return
	 */
	public Set<IProduct> getProducts(ICategory category) {

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Set<Product> products = null;

		try {
			session.beginTransaction();
			session.refresh(category);
			Hibernate.initialize(((Category) category).getProducts());
			products = ((Category) category).getProducts();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}

		if (products == null)
			return null;
		return new HashSet<IProduct>(products);
	}

	/*
	 * @param category @return
	 */
	public Set<ICategory> getSubCategories(ICategory category) {

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		List list = null;
		try {
			session.beginTransaction();
			Query query = session.createQuery("from Category as category where"
					+ " supCategory.id = ?");
			query.setString(0, new Long(category.getId()).toString());
			list = query.list();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}

		if (list == null)
			return null;
		return new HashSet<ICategory>(list);
	}

	public boolean hasProducts(ICategory category) {

		if (category == null)
			return false;

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

		try {
			session.beginTransaction();
			session.refresh(category);
			Hibernate.initialize(((Category) category).getProducts());
			set = ((Category) category).getProducts();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.getTransaction().commit();
		}

		if (set == null)
			return false;

		return set.size() > 0 ? true : false;
	}

	/*
	 * @param category @return
	 */
	public boolean hasSubCategories(ICategory category) {

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

		try {
			session.beginTransaction();
			Query query = session
					.createSQLQuery("select count(*) from Category "
							+ "where SUP_ID = ?");
			query.setString(0, new Long(category.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 category @return
	 */
	public boolean removeProduct(ICategory category, IProduct product) {

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

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

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

	/*
	 * @param category @return
	 */
	public boolean updateCategory(ICategory category) {

		if (category == null)
			return false;

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

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

⌨️ 快捷键说明

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