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,即可查看所有已添加的商品。

阅读剩余 75%

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

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

相关文章

  • 一文搞懂Java JDBC中的SQL注入问题

    一文搞懂Java JDBC中的SQL注入问题 什么是SQL注入? SQL注入是指攻击者利用客户端向服务器传递的SQL语句中的漏洞,注入恶意的查询语句或其他可执行的操作,从而获得非法的访问或者篡改数据的行为。SQL注入攻击是应用程序中最常见的攻击之一。 为什么要防止SQL注入? SQL注入攻击会使应用程序不按照设计来执行SQL语句,因而破坏了应用程序的安全性。…

    Java 2023年6月16日
    00
  • Spring之ShutDown Hook死锁现象解读

    Spring之ShutDown Hook死锁现象解读 什么是ShutDown Hook死锁 在Spring应用程序正常关闭的过程中,ShutDown Hook是一个非常有用的工具。ShutDown Hook是Java进程中的一段代码块,用于在应用程序关闭时处理一些清理工作。ShutDown Hook是Spring框架中提供的一种线程,它可以在Spring应用…

    Java 2023年5月31日
    00
  • eclipse如何搭建Springboot项目详解

    Eclipse如何搭建Spring Boot项目 介绍 Spring Boot是一种新型的Java开发框架,可以快速构建基于Spring的应用程序。 它可以帮助你更容易地建立Spring应用,并且使用独立的Spring运行时环境来结构化、测试和部署Spring Boot应用程序。 这里将介绍如何使用Eclipse搭建一个Spring Boot项目。 步骤 第…

    Java 2023年5月19日
    00
  • FCKeditor JSP版漏洞

    FCKeditor JSP版漏洞(CVE-2009-2265)是一种常见的跨站脚本攻击(XSS)漏洞,攻击者可以在网站页面上注入恶意脚本,从而窃取用户的敏感信息或者控制用户的会话。以下是详细讲解这个漏洞的完整攻略: 漏洞背景 FCKeditor是一个开源的富文本编辑器,其中包含了JSP版,但JSP版在处理文件上传方面存在漏洞。攻击者可以通过构造一个包含特制的…

    Java 2023年6月15日
    00
  • Java Calendar日历与Date日期的相互转换详解

    下面是“Java Calendar日历与Date日期的相互转换详解”的完整攻略。 标题 Java Calendar日历与Date日期的相互转换详解 概述 Java中常用的时间类型有两种: Calendar和Date。在Java项目中,有时需要在这两种类型之间进行转换。本文将详细介绍如何将Calendar和Date互相转换。 Calendar转换为Date C…

    Java 2023年5月20日
    00
  • Java基础之面向对象机制(多态、继承)底层实现

    Java基础之面向对象机制(多态、继承)底层实现 Java作为一种面向对象的语言,通过多态和继承两种机制来实现面向对象的特性。本文将从底层角度分别探究多态和继承的实现方式。 多态的底层实现 多态通过方法重写和方法重载来实现,方法重写是指子类重写父类的方法,而方法重载是指在同一个类中,两个或多个方法具有相同的名称,但具有不同的参数列表。 下面是一个多态的例子:…

    Java 2023年5月19日
    00
  • Java中在时间戳计算的过程中遇到的数据溢出问题解决

    在Java中,时间戳通常使用long类型数据表示,记录单位为毫秒或纳秒的时间戳。在进行时间戳计算时,可能会遇到数据溢出的问题,导致计算出现错误的结果。 解决数据溢出问题的方法是使用BigInteger类进行高精度计算。具体的步骤如下: 将long类型数据转换成BigInteger类型 java BigInteger b1 = BigInteger.value…

    Java 2023年5月20日
    00
  • Jsp中的table多表头导出excel文件具体实现

    首先,需要使用JXL库来将数据导出为Excel文件。而实现table多表头导出Excel文件的关键是要在Excel中实现合并单元格。 以下是实现步骤: 1. 引入 JXL 库 在 JSP 页面中引入 jxl.jar 包。 <%@ page language="java" contentType="text/html; ch…

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