13.首页热门商品显示

1、建表

创建二级分类的表:
CREATE TABLE `categorysecond` (
  `csid` int(11) NOT NULL AUTO_INCREMENT,
  `csname` varchar(255) DEFAULT NULL,
  `cid` int(11) DEFAULT NULL,
  PRIMARY KEY (`csid`),
  KEY `FK936FCAF21DB1FD15` (`cid`),
  CONSTRAINT `FK936FCAF21DB1FD15` FOREIGN KEY (`cid`) REFERENCES `category` (`cid`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8;
创建商品表:
CREATE TABLE `product` (
  `pid` int(11) NOT NULL AUTO_INCREMENT,
  `pname` varchar(255) DEFAULT NULL,
  `market_price` double DEFAULT NULL,
  `shop_price` double DEFAULT NULL,
  `image` varchar(255) DEFAULT NULL,
  `num` int(11) DEFAULT NULL,
  `pdesc` varchar(255) DEFAULT NULL,
  `is_hot` int(11) DEFAULT NULL,
  `pdate` datetime DEFAULT NULL,
  `csid` int(11) DEFAULT NULL,
  PRIMARY KEY (`pid`),
  KEY `FKED8DCCEFB9B74E02` (`csid`),
  CONSTRAINT `FKED8DCCEFB9B74E02` FOREIGN KEY (`csid`) REFERENCES `categorysecond` (`csid`)
) ENGINE=InnoDB AUTO_INCREMENT=74 DEFAULT CHARSET=utf8;

2、创建包及类

Product.java

package cn.xdy.shop.product.vo;

import java.util.Date;

public class Product {
	private Integer pid;
	private String pname;
	private Double market_price;
	private Double shop_price;
	private String image;
	private String pdesc;
	private Integer is_hot;
	private Date pdate;

	// 二级分类ID
	public Integer getPid() {
		return pid;
	}

	public void setPid(Integer pid) {
		this.pid = pid;
	}

	public String getPname() {
		return pname;
	}

	public void setPname(String pname) {
		this.pname = pname;
	}

	public String getImage() {
		return image;
	}

	public void setImage(String image) {
		this.image = image;
	}

	public String getPdesc() {
		return pdesc;
	}

	public void setPdesc(String pdesc) {
		this.pdesc = pdesc;
	}

	public Double getMarket_price() {
		return market_price;
	}

	public void setMarket_price(Double market_price) {
		this.market_price = market_price;
	}

	public Double getShop_price() {
		return shop_price;
	}

	public void setShop_price(Double shop_price) {
		this.shop_price = shop_price;
	}

	public Integer getIs_hot() {
		return is_hot;
	}

	public void setIs_hot(Integer is_hot) {
		this.is_hot = is_hot;
	}

	public Date getPdate() {
		return pdate;
	}

	public void setPdate(Date pdate) {
		this.pdate = pdate;
	}

}

Product.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="cn.xdy.shop.product.vo.Product" table="product">
		<id name="pid">
			<generator class="native"/>
		</id>
		<property name="pname"/>
		<property name="market_price"/>
		<property name="shop_price"/>
		<property name="image"/>
		<property name="pdesc"/>
		<property name="is_hot"/>
		<property name="pdate"/>
	</class>
</hibernate-mapping>

将Product.hbm.xml加入到applicationContext.xml中

<!-- 配置Hibernate的映射文件 -->
		<property name="mappingResources">
			<list>
				<value>cn/xdy/shop/user/vo/User.hbm.xml</value>
				<value>cn/xdy/shop/category/vo/Category.hbm.xml</value>
				<value>cn/xdy/shop/product/vo/Product.hbm.xml</value>
			</list>
		</property>

IndexAction.java中查询热门商品,将查询到的数据保存到值栈中。

/**
	 * 执行访问首页的方法
	 */
	public String execute() throws Exception {
		// 首页一级分类的显示
		List<Category> cList = categoryService.findAll();
		ActionContext.getContext().getSession().put("cList", cList);

		// 首页热门商品显示
		List<Product> hlist = productService.findHot();
		ActionContext.getContext().getValueStack().set("hlist", hlist);
		return "index";
	}

ProductService.java

package cn.xdy.shop.product.service;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import cn.xdy.shop.product.dao.ProductDao;
import cn.xdy.shop.product.vo.Product;

@Transactional
public class ProductService {
	private ProductDao productDao;

	public void setProductDao(ProductDao productDao) {
		this.productDao = productDao;
	}

	public List<Product> findHot() {
		return productDao.findHot();
	}
	
	
}

ProductDao.java

package cn.xdy.shop.product.dao;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import cn.xdy.shop.product.vo.Product;

public class ProductDao extends HibernateDaoSupport{

	public List<Product> findHot() {
		DetachedCriteria criteria = DetachedCriteria.forClass(Product.class);
		criteria.add(Restrictions.eq("is_hot", 1));
		criteria.addOrder(Order.desc("pdate"));
		List<Product> list = this.getHibernateTemplate().findByCriteria(criteria, 0, 10);
		return list;
	}

}

完成Service和Dao的配置

<bean id="productDao" class="cn.xdy.shop.product.dao.ProductDao">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>

<bean id="productService" class="cn.xdy.shop.product.service.ProductService">
		<property name="productDao" ref="productDao"></property>
	</bean>

indexAction中注入productService

<!-- 首页访问的action -->
	<bean id="indexAction" class="cn.xdy.shop.index.action.IndexAction" scope="prototype">
		<property name="categoryService" ref="categoryService"></property>
		<property name="productService" ref="productService"></property>
	</bean>

3、效果图


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值