• Spring Boot + Vue的网上商城之商品管理


    Spring Boot + Vue的网上商城之商品管理

    在网上商城中,商品管理是一个非常重要的功能。它涉及到商品的添加、编辑、删除和展示等操作。本文将介绍如何使用Spring Boot和Vue来实现一个简单的商品管理系统
    下面是一个实现Spring Boot + Vue的网上商城之商品管理的思路:

    1. 创建一个Spring Boot项目,使用Spring Initializr或手动创建。添加所需的依赖,如Spring Web、Spring Data JPA和H2数据库。

    2. 创建一个名为"Product"的实体类,表示商品。在该类中定义商品的属性,如id、名称、价格等,并使用JPA注解进行映射。

    3. 创建一个名为"ProductRepository"的接口,继承自JpaRepository,并使用@Repository注解标记。该接口将用于定义与商品数据的交互方法,如查询所有商品、添加商品、更新商品和删除商品等。

    4. 创建一个名为"ProductController"的类,使用@RestController注解标记。在该类中定义商品管理的API接口,如获取所有商品的接口、添加商品的接口、更新商品的接口和删除商品的接口等。在每个接口方法中,调用ProductRepository中定义的方法来实现具体的业务逻辑。

    5. 配置数据库连接信息,如数据库的URL、用户名和密码等。可以在application.properties或application.yml文件中进行配置。

    6. 运行Spring Boot应用程序,确保API接口能够正常工作,并能够通过Postman或浏览器访问。

    7. 创建一个Vue项目,使用Vue CLI或手动创建。安装所需的依赖,如vue-router和axios。

    8. 创建一个名为"ProductList"的组件,用于显示商品列表。在该组件中,使用axios库发送HTTP请求,调用商品管理的API接口,获取所有商品的数据,并在页面上展示出来。

    9. 创建一个名为"ProductForm"的组件,用于添加和编辑商品。在该组件中,使用axios库发送HTTP请求,调用商品管理的API接口,添加或更新商品的数据。

    10. 创建一个名为"ProductItem"的组件,用于显示单个商品的详细信息。在该组件中,使用axios库发送HTTP请求,调用商品管理的API接口,获取单个商品的数据,并在页面上展示出来。

    11. 配置路由,将ProductList、ProductForm和ProductItem组件与相应的URL路径进行关联。

    12. 运行Vue应用程序,确保页面能够正常显示,并能够通过添加、编辑和删除商品进行交互。

    以上是一个实现Spring Boot + Vue的网上商城之商品管理的思路。根据这个思路,你可以按照步骤逐步实现整个项目。

    技术栈

    • 后端:Spring Boot、Spring Data JPA、MySQL
    • 前端:Vue、Vue Router、Axios、Element UI

    后端实现

    创建Spring Boot项目

    首先,我们需要创建一个Spring Boot项目。可以使用Spring Initializr(https://start.spring.io/)来快速生成项目骨架。

    数据库设计

    在MySQL数据库中创建一个名为"product"的表,用于存储商品信息。表结构如下:

    CREATE TABLE product (
      id INT PRIMARY KEY AUTO_INCREMENT,
      name VARCHAR(100) NOT NULL,
      price DECIMAL(10, 2) NOT NULL,
      description VARCHAR(255)
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    创建实体类和Repository

    在Java代码中创建一个名为"Product"的实体类,用于映射数据库表。同时,创建一个名为"ProductRepository"的接口,用于访问数据库。

    @Entity
    @Table(name = "product")
    public class Product {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
    
        private String name;
    
        private BigDecimal price;
    
        private String description;
    
        // 省略getter和setter方法
    }
    
    @Repository
    public interface ProductRepository extends JpaRepository<Product, Long> {
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    创建商品管理API

    在Spring Boot项目的控制器中创建商品管理的API。例如,创建一个名为"ProductController"的类,并实现以下接口:

    • 获取所有商品列表:GET /api/products
    • 添加商品:POST /api/products
    • 编辑商品:PUT /api/products/{id}
    • 删除商品:DELETE /api/products/{id}
    @RestController
    @RequestMapping("/api/products")
    public class ProductController {
        @Autowired
        private ProductRepository productRepository;
    
        @GetMapping
        public List<Product> getAllProducts() {
            return productRepository.findAll();
        }
    
        @PostMapping
        public Product addProduct(@RequestBody Product product) {
            return productRepository.save(product);
        }
    
        @PutMapping("/{id}")
        public Product updateProduct(@PathVariable Long id, @RequestBody Product product) {
            Product existingProduct = productRepository.findById(id).orElseThrow(() -> new RuntimeException("Product not found"));
            existingProduct.setName(product.getName());
            existingProduct.setPrice(product.getPrice());
            existingProduct.setDescription(product.getDescription());
            return productRepository.save(existingProduct);
        }
    
        @DeleteMapping("/{id}")
        public void deleteProduct(@PathVariable Long id) {
            productRepository.deleteById(id);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    运行后端服务

    使用IDE工具(如IntelliJ IDEA)运行Spring Boot项目,后端服务将在默认端口(如8080)上启动。

    前端实现

    创建Vue项目

    使用Vue CLI来创建一个新的Vue项目。打开命令行,并执行以下命令:

    vue create product-management
    
    • 1

    安装依赖

    进入项目目录,并安装所需的依赖:

    cd product-management
    npm install axios element-ui vue-router
    
    • 1
    • 2

    创建组件

    在src目录下创建一个名为"components"的文件夹,并在其中创建以下组件:

    • ProductList.vue:用于展示商品列表
    • ProductForm.vue:用于添加和编辑商品
    • ProductItem.vue:用于展示单个商品

    配置路由

    在src目录下创建一个名为"router"的文件夹,并在其中创建一个名为"index.js"的文件。在该文件中配置路由:

    import Vue from 'vue'
    import VueRouter from 'vue-router'
    import ProductList from '../components/ProductList.vue'
    import ProductForm from '../components/ProductForm.vue'
    
    Vue.use(VueRouter)
    
    const routes = [
      { path: '/', component: ProductList },
      { path: '/add', component: ProductForm },
      { path: '/edit/:id', component: ProductForm }
    ]
    
    const router = new VueRouter({
      mode: 'history',
      routes
    })
    
    export default router
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    创建API服务

    在src目录下创建一个名为"services"的文件夹,并在其中创建一个名为"productService.js"的文件。在该文件中定义与后端API的交互:

    import axios from 'axios'
    
    const apiClient = axios.create({
      baseURL: '/api/products',
      headers: {
        'Content-Type': 'application/json'
      }
    })
    
    export default {
      getAllProducts() {
        return apiClient.get()
      },
    
      addProduct(product) {
        return apiClient.post('', product)
      },
    
      updateProduct(id, product) {
        return apiClient.put(`/${id}`, product)
      },
    
      deleteProduct(id) {
        return apiClient.delete(`/${id}`)
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    编写组件代码

    打开ProductList.vue文件,并编写以下代码:

    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64

    类似地,编写ProductForm.vue和ProductItem.vue组件的代码。

    配置入口文件

    打开main.js文件,并添加以下代码:

    import Vue from 'vue'
    import App from './App.vue'
    import router from './router'
    
    Vue.config.productionTip = false
    
    new Vue({
      router,
      render: h => h(App)
    }).$mount('#app')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    运行前端项目

    在命令行中执行以下命令,启动前端项目:

    npm run serve
    
    • 1

    前端项目将在默认端口(如8081)上启动。

    测试

    现在,打开浏览器并访问http://localhost:8081,你将看到一个简单的商品管理界面。你可以添加、编辑和删除商品,并查看商品列表。

    结论

    通过结合Spring Boot和Vue,我们成功地实现了一个简单的商品管理系统。这个系统具有良好的用户界面和用户体验,并且能够与后端进行数据交互。你可以根据实际需求对其进行扩展和优化。

    以上是关于Spring Boot + Vue的网上商城之商品管理的详细介绍和代码案例。希望对你有所帮助!

  • 相关阅读:
    【python编程从入门到实践】P2 变量的规范
    工业级路由器如何异地组网及其作用
    c++运算符
    FPGA之旅设计99例之第四例-----多byte串口通信
    用libmodbus实现一个支持多客户端的modbus tcp server (slave)
    第15届蓝桥STEMA测评真题剖析-2023年10月29日Scratch编程初中级组
    第3章业务功能开发(创建mybatis的逆向工程)
    华为云大数据BI赋能企业数字化发展
    [附源码]计算机毕业设计SpringBoot游戏论坛网站
    Spring框架两大核心模块(8月5号)
  • 原文地址:https://blog.csdn.net/qq_22593423/article/details/132725116