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

📄 rootcategorydao.java

📁 struts+spring+hibernate例子
💻 JAVA
字号:
/**
  * @(#)tarena.data.CategoryList.java  2008-11-10  
  * Copy Right Information	: Tarena
  * Project					: xindou
  * JDK version used		: jdk1.6.4
  * Comments				: 此处输入简单类说明
  * Version					: 1.0
  * Sr	Date		Modified By		Why & What is modified
  * 1.	2008-11-10 	陈达     		新建
  **/
package com.shop.dao.common;

import java.math.BigInteger;
import java.util.List;
import java.util.Vector;

import com.shop.dao.BaseHibernateDAO;
import com.shop.data.AbractCategory;
import com.shop.data.AbractProduct;

@SuppressWarnings(value="unchecked")
public class RootCategoryDAO extends BaseHibernateDAO {
	
	/**
	 * 查询顶级分类下的按商品销售的排行个数。
	 * @param categoryid 顶级分类id
	 * @param num 查询的个数。
	 * @return AbractCategory类型的集合。
	 */
	public List<AbractProduct> listHotProductByTop(int categoryid,int num){
		StringBuffer hql = new StringBuffer();
		hql.append("select new tarena.data.AbractProduct(p.id,p.pname,p.price) from Product p ");
		hql.append("where p.category.parentid in (select c.id from Category c where c.parentid=?) ");
		hql.append("order by p.salepopluarity desc");
		return getSession()
						.createQuery(hql.toString())
						.setParameter(0, categoryid)
						.setFirstResult(0)
						.setMaxResults(num)
						.list();
	}
	
	
	/**
	 * 查询指定顶级分类下的三级分类,并按该三级分类下的商品关注度总和排行
	 * @param categoryid 顶级分类id
	 * @param num	返回查询结果的个数
	 * @return AbractCategory类型的集合
	 */
	public List<AbractCategory> listHotThirdCategoryByTop(int categoryid,int num){
		StringBuffer sql=new StringBuffer();
		sql.append("select thd.tid,thd.tname,sum(p.viewpopluarity) hot from  ");
		sql.append("(select cat.id as tid,cat.cname as tname from");
		sql.append("(select id as pid from category  where parentid=?) two ");
		sql.append("left join category cat on (cat.parentid=two.pid) and (cat.ctype=3)) thd,");
		sql.append("product p where (p.cid=thd.tid) ");
		sql.append("group by thd.tid ");
		sql.append("order by hot desc ");
		List<Object[]> result= getSession().createSQLQuery(sql.toString())
							.setParameter(0, categoryid)
							.setFirstResult(0)
							.setMaxResults(num)
							.list();
		List<AbractCategory> re=new Vector<AbractCategory>();
		for(int i=0;i<result.size();i++){
			Object [] data=result.get(i);
			re.add(new AbractCategory((Integer)data[0],data[1].toString()));
		}
		return re;
		//return null;
	}
	
	/**
	 * 查询指定二级分类下的三级分类,并按该三级分类下的商品关注度总和排行,显示商品个数。
	 * @param categoryid 顶级分类id
	 * @return AbractCategory类型的集合
	 */
	
	public List<AbractCategory> listHotThirdCategoryBySecond(int categoryid){
		StringBuffer sql=new StringBuffer();
		sql.append("select cat.id,cat.cname ,count(*) n from ");
		sql.append("(select id,cname from category where  parentid=? and ctype=3) cat left outer join product p ");
		sql.append("on  (p.cid=cat.id) 	group by cat.id order by n desc");		
		List<Object[]> result= getSession().createSQLQuery(sql.toString())
							.setParameter(0, categoryid)							
							.list();
		List<AbractCategory> re=new Vector<AbractCategory>();
		for(int i=0;i<result.size();i++){
			Object [] data=result.get(i);
			re.add(new AbractCategory((Integer)data[0],data[1].toString(),((BigInteger)data[2]).intValue()));
		}
		return re;
	}
	
	/**
	 * 查询指定一级分类下的二级分类。
	 * @param categoryid 顶级分类id
	 * @return AbractCategory类型的集合
	 */
	
	public List<AbractCategory> listSecondCategoryByTop(int categoryid){
		StringBuffer hql=new StringBuffer();
		hql.append("select new com.shop.data.AbractCategory(id,cname) from Category c where  c.parentid=? and c.ctype=2");		
		return  getSession()
				.createQuery(hql.toString())
				.setParameter(0, categoryid)							
				.list();
	
	}
	

	/**
	 * 查找指定三级分类的热门商品。
	 * @param categoryid 顶级分类id
	 * @param num 显示的结果数
	 * @return AbractProduct类型的集合
	 */
	
	public List<AbractProduct> listProductByCategory(int categoryid,int num){
		StringBuffer hql=new StringBuffer();
		hql.append("select new tarena.data.AbractProduct(p.id,p.pname,p.price) from Product p ");	
		hql.append("where  p.category.id=? order by p.viewpopluarity");
		return  getSession()
				.createQuery(hql.toString())
				.setParameter(0, categoryid)
				.setFirstResult(0)
				.setMaxResults(num)
				.list();
	
	}
}

⌨️ 快捷键说明

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