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

2023-12-24 11:40:17

对于一个购物商城的项目,主体还得是商品,这篇博客主要介绍如何将数据库中的信息渲染到页面上,这边后端是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?

文章来源:https://blog.csdn.net/m0_61495539/article/details/135179077
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。