SpringBoot实现物品收藏功能

下面为你详细讲解如何使用 SpringBoot 实现物品收藏功能:

概述

使用 SpringBoot 可以简单快捷地实现 Web 应用的开发,本文将以 SpringBoot 为基础,使用 Maven 作为项目构建工具,使用 Thymeleaf 模板引擎渲染页面,使用 Hibernate 框架操作 MySQL 数据库,实现物品收藏功能。

前期准备

工具准备

  • IntelliJ IDEA(或其他 IDE)
  • JDK8
  • Maven
  • MySQL

项目初始化

在 IntelliJ IDEA 中新建一个 Maven 项目,选择 Spring Initializr,填写项目信息,勾选 Spring Web、Thymeleaf、Spring Data JPA、MySQL Connector/J 等依赖,并完成项目的创建。

数据库环境准备

在 MySQL 中新建一个数据库(如 mydb),并执行以下 SQL 语句创建一张 goods 表:

CREATE TABLE `goods` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `price` decimal(10,2) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

实现步骤

编写实体类

新建一个 Goods 实体类,使用 JPA 标准注解 @Entity 定义实体,@Id 定义主键,@GeneratedValue 定义主键生成策略为自增长。

@Entity
public class Goods {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String name;

    private BigDecimal price;

    // getter 和 setter 略

}

编写 Repository 接口

新建一个 GoodsRepository 接口,继承 JpaRepository 接口,即可获得许多常用的查询方法。

public interface GoodsRepository extends JpaRepository<Goods, Integer> {

}

编写 Service 类

新建一个 GoodsService 类,使用 @Service 注解将其标记为 Spring 的 Bean,实现添加商品和查询商品列表的方法。

@Service
public class GoodsService {

    @Autowired
    private GoodsRepository goodsRepository;

    public void saveGoods(Goods goods) {
        goodsRepository.save(goods);
    }

    public List<Goods> getAllGoods() {
        return goodsRepository.findAll();
    }

}

编写 Controller 类

新建一个 GoodsController 类,使用 @Controller 注解将其标记为 Spring MVC 的 Controller,实现商品添加和商品列表展示的方法。

@Controller
public class GoodsController {

    @Autowired
    private GoodsService goodsService;

    @GetMapping("/goods/add")
    public String addGoods() {
        return "addGoods";
    }

    @PostMapping("/goods/save")
    public String saveGoods(Goods goods) {
        goodsService.saveGoods(goods);
        return "redirect:/goods/list";
    }

    @GetMapping("/goods/list")
    public String getAllGoods(Model model) {
        List<Goods> goodsList = goodsService.getAllGoods();
        model.addAttribute("goodsList", goodsList);
        return "goodsList";
    }

}

编写 Thymeleaf 模板

新建一个 addGoods.html 模板,实现商品添加界面的渲染:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Add Goods</title>
</head>
<body>
<h1>Add Goods</h1>
<form action="/goods/save" method="post">
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" required="required"/>
    <br/>
    <label for="price">Price:</label>
    <input type="text" id="price" name="price" required="required"/>
    <br/><br/>
    <input type="submit" value="Submit"/>
</form>
</body>
</html>

新建一个 goodsList.html 模板,实现商品列表界面的渲染:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Goods List</title>
</head>
<body>
<h1>Goods List</h1>
<table>
    <tr>
        <th>Id</th>
        <th>Name</th>
        <th>Price</th>
    </tr>
    <tr th:each="goods : ${goodsList}">
        <td th:text="${goods.id}"></td>
        <td th:text="${goods.name}"></td>
        <td th:text="${goods.price}"></td>
    </tr>
</table>
</body>
</html>

运行项目

在 MySQL 中插入一些商品数据,运行 SpringBoot 项目,即可在浏览器中访问 http://localhost:8080/goods/add,进入商品添加界面,添加一些商品数据后,再访问 http://localhost:8080/goods/list,即可查看商品列表。

示例说明

示例1:添加商品

在浏览器中访问 http://localhost:8080/goods/add,进入商品添加界面,输入商品名称和价格,点击提交按钮即可添加一件商品。

示例2:查看商品列表

在浏览器中访问 http://localhost:8080/goods/list,即可查看所有已添加的商品。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot实现物品收藏功能 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • jsp中点击图片弹出文件上传界面及实现预览实例详解

    本文将会详细讲解“jsp中点击图片弹出文件上传界面及实现预览实例详解”的完整攻略。该攻略主要分为两个步骤:实现图片点击上传以及实现图片预览。下面我将分别讲解这两个步骤的具体实现。 实现图片点击上传 对于实现图片点击上传,我们需要用到一个比较流行的JS插件:webuploader。具体实现步骤如下: 1. 引入webuploader库 在jsp页面中引入web…

    Java 2023年6月15日
    00
  • SpringBoot的SPI机制源码解析

    SpringBoot的SPI机制源码解析 什么是SPI? SPI全称为Service Provider Interface(Service Provider Interface),是JDK内置的一种面向接口编程的机制。SPI的作用就是为这些接口寻找实现类。具体来说,当服务接口的实现类存在于classpath路径下的第三方jar包中,可以通过SPI机制自动发现…

    Java 2023年5月20日
    00
  • springboot+springmvc+mybatis项目整合

    一、概述 本文将简要讲解如何使用SpringBoot + SpringMVC + MyBatis这个组合来开发Web应用。这一组合是非常流行的,MyBatis负责ORM,SpringMVC负责MVC框架,SpringBoot则帮助我们快速搭建整个应用。 二、环境搭建 首先,我们需要在本地环境中安装JDK、Maven以及相应的IDE。为了便于快速上手,可以使用…

    Java 2023年5月15日
    00
  • ManyToMany单向、双向:@JoinTable的使用

    ManyToMany 单向使用 @JoinTable 的完整攻略 ManyToMany 单向关系适用于两个实体之间是互相独立的,例如学生可以选择多个课程,而课程也可以被多个学生选择。我们可以使用 @ManyToMany 注解来映射这样的关系。当两个实体之间是互相依赖的,例如 Order 和 Product,我们就需要使用双向 ManyToMany,可以参考第…

    Java 2023年5月20日
    00
  • Java MyBatis传出参数resultType和resultMap解读

    Java MyBatis传出参数resultType和resultMap解读 在Java MyBatis中,我们使用select语句进行数据库数据查询时,可以通过resultType和resultMap两种方式指定查询结果的返回值类型。在本文中,我们将详细讲解这两种方式的使用方法和区别。 resultType resultType是最简单也是最常用的一种方法…

    Java 2023年5月20日
    00
  • Intellij IDEA 旗舰版创建 Spring MVC 项目踩过的坑

    Intellij IDEA 旗舰版创建 Spring MVC 项目踩过的坑 Intellij IDEA 是一款非常流行的 Java 开发工具,它提供了很多方便的功能来帮助我们开发 Spring MVC 项目。但是在创建 Spring MVC 项目时,有时会遇到一些问题和坑。本文将详细讲解如何在 Intellij IDEA 旗舰版中创建 Spring MVC …

    Java 2023年5月18日
    00
  • Struts2学习教程之自定义类型转换器的方法

    Struts2学习教程之自定义类型转换器的方法 什么是类型转换器? 在Struts2中,表单提交的参数是以字符串的形式传递给Action的,而我们在编写Action时经常会定义一些非字符串类型的属性(如int、Date等)。这时,Struts2就需要将这些字符串类型的参数转换成相应的目标类型,这个过程就是类型转换。 Struts2默认内置了一套类型转换器,可…

    Java 2023年5月20日
    00
  • Java springboot项目jar发布过程解析

    下面是关于“Java springboot项目jar发布过程解析”的完整攻略: Java SpringBoot 项目Jar发布过程解析 简介 SpringBoot是Spring家族的一个全新框架,它使用了约定优于配置的理念,更加简化了Spring项目的搭建和配置过程。通过SpringBoot,我们可以快速高效地构建一个企业级的Java Web应用程序。 在使…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部