Springboot +JPA+thymeleaf+MySQL+BootStrap制作订单管理系统

本文介绍了如何利用Springboot、JPA、Thymeleaf和MySQL结合BootStrap搭建一个订单管理系统。系统实现了设备的增删改查、分页和排序功能。详细阐述了项目的结构,包括配置数据库、模型层、repository层、service业务层、Controller控制层以及HTML页面的设计。
摘要由CSDN通过智能技术生成

前言:

用Springboot +JPA+thymeleaf+MySQL+BootStrap 部署了一个订单管理系统,实现了 添加设备、删除设备、更新设备、查找设备、分页、排序等功能,项目内分有不同的包,也就是层,下面我将对每层进行解释。
BootStrap官网

1.创建项目

在这里插入图片描述
在这里插入图片描述

1.1 项目结构

在这里插入图片描述

1.2 在application.properties配置数据库

spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
                                    #localhost:3306为mysql的host和port tesstdb就是连接的庶几乎库名称
#mysql用户名
spring.datasource.username= root
#登入mysql的密码
spring.datasource.password= 123456

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# for Spring Boot 2
# spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5InnoDBDialect

# for Spring Boot 3
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQLDialect

# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto= update

#?????hibernate-sql
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE



2.model模型层

package com.example.mvcorders.model;

import jakarta.persistence.*;
import lombok.Data;
@Data
@Entity
@Table(name = "orders")
public class Orders {
   
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    //订单id
    @Column(name = "order_id")
    private Long orderID;

    //时间
    @Column(name = "time")
    private String time;

    //收件人
    @Column(name = "consignee")
    private String consignee;

    //收件地址
    @Column(name = "addr")
    private String addr;

    //订单状态
    @Column(name = "status")
    private String status;
}

3.repository层

此层只定义了一个接口,而且此接口继承了JpaRepository接口,JpaRepository接口内有很多方法,可供接下来的使用,因为JpaRepository接口里并不一定有我想要的功能的方法,这里我创建了一个模糊查询,可以通过status状态这个属性,查询到相关的所有信息

package com.example.mvcorders.repository;

import com.example.mvcorders.model.Orders;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;

public interface OrdersRepository extends JpaRepository<Orders,Long> {
   
    @Query("select e from Orders e where e.status like %:status%")
    List<Orders> findByStatus(@Param("status") String status);
}

4.service 业务层

业务层分别有两部分,一个是接口,一个是接口的实现类

4.1OrdersService接口

接口里负责构建方法,但没有实体,方法的实体由继承此接口的类重写,每个方法指定要实现什么功能

package com.example.mvcorders.service;

import com.example.mvcorders.model.Orders;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

public interface OrdersService {
   
    //获取所有订单
    List<Orders> getOrders();

    //新增/更新一个订单
    void saveOrders(Orders orders);

    //获取指定ID的订单
    Orders getOrdersById(long id);

    //删除指定ID的订单
    void deleteOrdersById(long id);

    //通过指定状态查询信息
    List<Orders> findByStatus(String status);

    //分页
    Page<Orders> findPaginated(int pageNo, int pageSize, String sortField, String sortDirection);
}

4.2 OrdersServicelmpl类

此类需要继承OrdersService接口并实现父类方法

package com.example.mvcorders.service;

import com.example.mvcorders.model.Orders;
import com.example.mvcorders.repository.OrdersRepository;
import org.aspectj.weaver.ast.Or;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
public class OrdersServicelmpl implements OrdersService{
   
    @Autowired
    private OrdersRepository ordersRepository;

    @Override   //返回所有信息
    public List<Orders> getOrders() {
   
        return ordersRepository.findAll();
    }

    @Override   //添加信息
    public void saveOrders(Orders orders) {
   
        this.ordersRepository.save(orders
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值