实习课知识整理3:首页商品列表的展示

对于一个购物商城的项目,主体还得是商品,这篇博客主要介绍如何将数据库中的信息渲染到页面上,这边后端是SpringBoot,前端是html配合thymeleaf模板

1. 编写查询数据库的方法

在这边我在页面上需要两部分的信息,一个是所有的商品,另一个是商品热度排名前三的商品信息。所以需要写两个方法

itemMapper.java

    // 查询所有商品列表
    List<Item> getItemList();

    // 根据 热度 heart 查询
    List<Item> getItemListByHeart();

itemMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.shopping.mapper.ItemMapper">

    <resultMap id="itemBaseResultMap" type="Item">
        <!-- 映射字段 -->
        <id column="ITEM_ID" property="itemId"/>
        <id column="ITEM_NAME" property="itemName"/>
        <id column="ITEM_PRICE" property="itemPrice"/>
        <id column="ITEM_COUNT" property="itemCount"/>
        <id column="ITEM_CREATE_TIME" property="itemCreateTime"/>
        <id column="ITEM_DESC" property="itemDesc"/>
        <id column="ITEM_TYPE_ID" property="itemTypeId"/>
        <id column="ITEM_SALE_PRICE" property="itemSalePrice"/>
        <id column="ITEM_STATE" property="itemState"/>
        <id column="ITEM_IMAGE_MAIN" property="itemImageMain"/>
        <id column="ITEM_IMAGE_OTHER" property="itemImageOther"/>
        <id column="ITEM_VIDEO_URL" property="itemVideoUrl"/>
        <id column="ITEM_HEART" property="itemHeart"/>
    </resultMap>


    <select id="getItemList" resultMap="itemBaseResultMap">
        select ITEM_ID, ITEM_NAME, ITEM_PRICE, ITEM_COUNT, ITEM_CREATE_TIME, ITEM_DESC,
               ITEM_TYPE_ID, ITEM_SALE_PRICE, ITEM_STATE, ITEM_IMAGE_MAIN, ITEM_IMAGE_OTHER,
               ITEM_VIDEO_URL, ITEM_HEART FROM shopping.item
    </select>

    <!--编写Sql代码块,便于多次使用-->
    <sql id="allColumns">
        select ITEM_ID, ITEM_NAME, ITEM_PRICE, ITEM_COUNT, ITEM_CREATE_TIME, ITEM_DESC,
        ITEM_TYPE_ID, ITEM_SALE_PRICE, ITEM_STATE, ITEM_IMAGE_MAIN, ITEM_IMAGE_OTHER,
        ITEM_VIDEO_URL, ITEM_HEART from shopping.item
    </sql>

    <select id="getItemListByHeart" resultMap="itemBaseResultMap">
        <include refid="allColumns"></include> ORDER BY ITEM_HEART DESC LIMIT 0,3
    </select>
</mapper>

 

itemService.java接口 

    // 查询所有商品列表
    List<Item> getItemList();

    // 根据 热度 heart 查询
    List<Item> getItemListByHeart();

itemServiceImpl实现类

    @Resource
    private ItemMapper itemMapper;

    @Override
    public List<Item> getItemList() {
        return itemMapper.getItemList();
    }

    @Override
    public List<Item> getItemListByHeart() {
        return itemMapper.getItemListByHeart();
    }

indexController

    @RequestMapping("/index")
    public ModelAndView index2(ModelAndView mav)  throws Exception{
        List<Item> allItems = itemService.getItemList();
        List<Item> itemsByHeart = itemService.getItemListByHeart();

        mav.addObject("allItems",allItems);
        mav.addObject("itemsByHeart",itemsByHeart);

        mav.setViewName("index");
        return mav;
    }

 

 2. 前端拿到后端返回的数据,并渲染到页面上

index.html 

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-25 16:06:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-25 16:06:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-25 16:06:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-25 16:06:02       18 阅读

热门阅读

  1. 提升资源管理效率必备工具推荐

    2023-12-25 16:06:02       38 阅读
  2. 2023/12/25 :讲车载数据采集系统的方案

    2023-12-25 16:06:02       37 阅读
  3. Flume采集日志存储到HDFS

    2023-12-25 16:06:02       41 阅读
  4. Linux下安装Flume

    2023-12-25 16:06:02       43 阅读
  5. 5.Redis管道(pipeline)

    2023-12-25 16:06:02       35 阅读
  6. uniapp中复选框的使用

    2023-12-25 16:06:02       34 阅读
  7. Linux read 命令

    2023-12-25 16:06:02       37 阅读
  8. 二、安全与风险管理—风险管理

    2023-12-25 16:06:02       39 阅读