基于 SSM(Spring + Spring MVC + MyBatis)框架构建电器网上订购系统

基于 SSM(Spring + Spring MVC + MyBatis)框架构建电器网上订购系统可以为用户提供一个方便快捷的购物平台。以下将详细介绍该系统的开发流程,包括需求分析、技术选型、数据库设计、项目结构搭建、主要功能实现以及前端页面设计。
在这里插入图片描述

需求分析

电器网上订购系统应具备以下功能:

  • 用户注册与登录
  • 商品展示与搜索
  • 购物车管理
  • 订单管理
  • 支付接口集成
  • 后台管理系统(商品管理、订单管理、用户管理)

技术选型

  • 后端:Java、Spring、Spring MVC、MyBatis
  • 前端:HTML、CSS、JavaScript、JQuery
  • 数据库:MySQL
  • 开发工具:IntelliJ IDEA 或 Eclipse
  • 服务器:Tomcat

数据库设计

创建数据库表以存储用户信息、商品信息、购物车信息、订单信息等。

用户表(users)
  • id (INT, 主键, 自增)
  • username (VARCHAR)
  • password (VARCHAR)
  • email (VARCHAR)
  • phone (VARCHAR)
商品表(products)
  • id (INT, 主键, 自增)
  • name (VARCHAR)
  • description (TEXT)
  • price (DECIMAL)
  • stock (INT)
  • category (VARCHAR)
  • image_url (VARCHAR)
购物车表(cart_items)
  • id (INT, 主键, 自增)
  • user_id (INT, 外键)
  • product_id (INT, 外键)
  • quantity (INT)
订单表(orders)
  • id (INT, 主键, 自增)
  • user_id (INT, 外键)
  • order_date (DATETIME)
  • total_price (DECIMAL)
  • status (VARCHAR)
订单详情表(order_details)
  • id (INT, 主键, 自增)
  • order_id (INT, 外键)
  • product_id (INT, 外键)
  • quantity (INT)
  • price (DECIMAL)

项目结构搭建

  1. 创建 Maven 项目

    • 在 IDE 中创建一个新的 Maven 项目。
    • 修改 pom.xml 文件,添加必要的依赖项。
  2. 配置文件

    • application.properties
      spring.datasource.url=jdbc:mysql://localhost:3306/electronics_store?useSSL=false&serverTimezone=UTC
      spring.datasource.username=root
      spring.datasource.password=root
      spring.datasource.driver-class-name=com.mysql.cj.jdbc.Drivermybatis.mapper-locations=classpath:mapper/*.xml
      
    • spring-mvc.xml
      <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><context:component-scan base-package="com.electronics"/><mvc:annotation-driven/><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/"/><property name="suffix" value=".jsp"/></bean></beans>
      
    • mybatis-config.xml
      <configuration><mappers><mapper resource="mapper/UserMapper.xml"/><mapper resource="mapper/ProductMapper.xml"/><mapper resource="mapper/CartItemMapper.xml"/><mapper resource="mapper/OrderMapper.xml"/><mapper resource="mapper/OrderDetailMapper.xml"/></mappers>
      </configuration>
      

实体类

User.java
package com.electronics.entity;public class User {private int id;private String username;private String password;private String email;private String phone;// Getters and Setters
}
Product.java
package com.electronics.entity;public class Product {private int id;private String name;private String description;private double price;private int stock;private String category;private String imageUrl;// Getters and Setters
}
CartItem.java
package com.electronics.entity;public class CartItem {private int id;private int userId;private int productId;private int quantity;// Getters and Setters
}
Order.java
package com.electronics.entity;import java.util.Date;public class Order {private int id;private int userId;private Date orderDate;private double totalPrice;private String status;// Getters and Setters
}
OrderDetail.java
package com.electronics.entity;public class OrderDetail {private int id;private int orderId;private int productId;private int quantity;private double price;// Getters and Setters
}

DAO 层

UserMapper.java
package com.electronics.mapper;import com.electronics.entity.User;
import org.apache.ibatis.annotations.*;@Mapper
public interface UserMapper {@Select("SELECT * FROM users WHERE username = #{username} AND password = #{password}")User login(@Param("username") String username, @Param("password") String password);@Insert("INSERT INTO users(username, password, email, phone) VALUES(#{username}, #{password}, #{email}, #{phone})")@Options(useGeneratedKeys = true, keyProperty = "id")void register(User user);
}
ProductMapper.java
package com.electronics.mapper;import com.electronics.entity.Product;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface ProductMapper {@Select("SELECT * FROM products")List<Product> getAllProducts();@Select("SELECT * FROM products WHERE id = #{id}")Product getProductById(int id);@Insert("INSERT INTO products(name, description, price, stock, category, image_url) VALUES(#{name}, #{description}, #{price}, #{stock}, #{category}, #{imageUrl})")@Options(useGeneratedKeys = true, keyProperty = "id")void addProduct(Product product);@Update("UPDATE products SET name=#{name}, description=#{description}, price=#{price}, stock=#{stock}, category=#{category}, image_url=#{imageUrl} WHERE id=#{id}")void updateProduct(Product product);@Delete("DELETE FROM products WHERE id=#{id}")void deleteProduct(int id);
}
CartItemMapper.java
package com.electronics.mapper;import com.electronics.entity.CartItem;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface CartItemMapper {@Select("SELECT * FROM cart_items WHERE user_id = #{userId}")List<CartItem> getCartItemsByUserId(int userId);@Insert("INSERT INTO cart_items(user_id, product_id, quantity) VALUES(#{userId}, #{productId}, #{quantity})")@Options(useGeneratedKeys = true, keyProperty = "id")void addToCart(CartItem cartItem);@Update("UPDATE cart_items SET quantity=#{quantity} WHERE id=#{id}")void updateCartItem(CartItem cartItem);@Delete("DELETE FROM cart_items WHERE id=#{id}")void deleteCartItem(int id);
}
OrderMapper.java
package com.electronics.mapper;import com.electronics.entity.Order;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface OrderMapper {@Select("SELECT * FROM orders WHERE user_id = #{userId}")List<Order> getOrdersByUserId(int userId);@Insert("INSERT INTO orders(user_id, order_date, total_price, status) VALUES(#{userId}, #{orderDate}, #{totalPrice}, #{status})")@Options(useGeneratedKeys = true, keyProperty = "id")void addOrder(Order order);@Update("UPDATE orders SET order_date=#{orderDate}, total_price=#{totalPrice}, status=#{status} WHERE id=#{id}")void updateOrder(Order order);@Delete("DELETE FROM orders WHERE id=#{id}")void deleteOrder(int id);
}
OrderDetailMapper.java
package com.electronics.mapper;import com.electronics.entity.OrderDetail;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface OrderDetailMapper {@Select("SELECT * FROM order_details WHERE order_id = #{orderId}")List<OrderDetail> getOrderDetailsByOrderId(int orderId);@Insert("INSERT INTO order_details(order_id, product_id, quantity, price) VALUES(#{orderId}, #{productId}, #{quantity}, #{price})")@Options(useGeneratedKeys = true, keyProperty = "id")void addOrderDetail(OrderDetail orderDetail);
}

Service 层

UserService.java
package com.electronics.service;import com.electronics.entity.User;
import com.electronics.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public User login(String username, String password) {return userMapper.login(username, password);}public void register(User user) {userMapper.register(user);}
}
ProductService.java
package com.electronics.service;import com.electronics.entity.Product;
import com.electronics.mapper.ProductMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class ProductService {@Autowiredprivate ProductMapper productMapper;public List<Product> getAllProducts() {return productMapper.getAllProducts();}public Product getProductById(int id) {return productMapper.getProductById(id);}public void addProduct(Product product) {productMapper.addProduct(product);}public void updateProduct(Product product) {productMapper.updateProduct(product);}public void deleteProduct(int id) {productMapper.deleteProduct(id);}
}
CartService.java
package com.electronics.service;import com.electronics.entity.CartItem;
import com.electronics.mapper.CartItemMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class CartService {@Autowiredprivate CartItemMapper cartItemMapper;public List<CartItem> getCartItemsByUserId(int userId) {return cartItemMapper.getCartItemsByUserId(userId);}public void addToCart(CartItem cartItem) {cartItemMapper.addToCart(cartItem);}public void updateCartItem(CartItem cartItem) {cartItemMapper.updateCartItem(cartItem);}public void deleteCartItem(int id) {cartItemMapper.deleteCartItem(id);}
}
OrderService.java
package com.electronics.service;import com.electronics.entity.Order;
import com.electronics.entity.OrderDetail;
import com.electronics.mapper.OrderDetailMapper;
import com.electronics.mapper.OrderMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class OrderService {@Autowiredprivate OrderMapper orderMapper;@Autowiredprivate OrderDetailMapper orderDetailMapper;public List<Order> getOrdersByUserId(int userId) {return orderMapper.getOrdersByUserId(userId);}public void addOrder(Order order) {orderMapper.addOrder(order);for (OrderDetail detail : order.getOrderDetails()) {orderDetailMapper.addOrderDetail(detail);}}public void updateOrder(Order order) {orderMapper.updateOrder(order);}public void deleteOrder(int id) {orderMapper.deleteOrder(id);}
}

Controller 层

UserController.java
package com.electronics.controller;import com.electronics.entity.User;
import com.electronics.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;@Controller
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/login")public String showLoginForm() {return "login";}@PostMapping("/login")public String handleLogin(@RequestParam("username") String username, @RequestParam("password") String password, Model model) {User user = userService.login(username, password);if (user != null) {model.addAttribute("user", user);return "redirect:/products";} else {model.addAttribute("error", "Invalid username or password");return "login";}}@GetMapping("/register")public String showRegisterForm() {return "register";}@PostMapping("/register")public String handleRegister(User user) {userService.register(user);return "redirect:/login";}
}
ProductController.java
package com.electronics.controller;import com.electronics.entity.Product;
import com.electronics.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;import java.util.List;@Controller
public class ProductController {@Autowiredprivate ProductService productService;@GetMapping("/products")public String showProducts(Model model) {List<Product> products = productService.getAllProducts();model.addAttribute("products", products);return "products";}@GetMapping("/product/{id}")public String showProductDetails(@RequestParam("id") int id, Model model) {Product product = productService.getProductById(id);model.addAttribute("product", product);return "productDetails";}@GetMapping("/addProduct")public String showAddProductForm() {return "addProduct";}@PostMapping("/addProduct")public String handleAddProduct(Product product) {productService.addProduct(product);return "redirect:/products";}@GetMapping("/editProduct/{id}")public String showEditProductForm(@RequestParam("id") int id, Model model) {Product product = productService.getProductById(id);model.addAttribute("product", product);return "editProduct";}@PostMapping("/editProduct")public String handleEditProduct(Product product) {productService.updateProduct(product);return "redirect:/products";}@GetMapping("/deleteProduct/{id}")public String handleDeleteProduct(@RequestParam("id") int id) {productService.deleteProduct(id);return "redirect:/products";}
}
CartController.java
package com.electronics.controller;import com.electronics.entity.CartItem;
import com.electronics.entity.Product;
import com.electronics.service.CartService;
import com.electronics.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;import java.util.List;@Controller
public class CartController {@Autowiredprivate CartService cartService;@Autowiredprivate ProductService productService;@GetMapping("/cart")public String showCart(@RequestParam("userId") int userId, Model model) {List<CartItem> cartItems = cartService.getCartItemsByUserId(userId);model.addAttribute("cartItems", cartItems);return "cart";}@PostMapping("/addToCart")public String handleAddToCart(@RequestParam("userId") int userId, @RequestParam("productId") int productId, @RequestParam("quantity") int quantity) {Product product = productService.getProductById(productId);CartItem cartItem = new CartItem();cartItem.setUserId(userId);cartItem.setProductId(productId);cartItem.setQuantity(quantity);cartService.addToCart(cartItem);return "redirect:/cart?userId=" + userId;}@PostMapping("/updateCartItem")public String handleUpdateCartItem(@RequestParam("id") int id, @RequestParam("quantity") int quantity) {CartItem cartItem = new CartItem();cartItem.setId(id);cartItem.setQuantity(quantity);cartService.updateCartItem(cartItem);return "redirect:/cart?userId=" + cartItem.getUserId();}@GetMapping("/removeFromCart/{id}")public String handleRemoveFromCart(@RequestParam("id") int id, @RequestParam("userId") int userId) {cartService.deleteCartItem(id);return "redirect:/cart?userId=" + userId;}
}
OrderController.java
package com.electronics.controller;import com.electronics.entity.Order;
import com.electronics.entity.OrderDetail;
import com.electronics.entity.Product;
import com.electronics.service.OrderService;
import com.electronics.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;import java.util.ArrayList;
import java.util.Date;
import java.util.List;@Controller
public class OrderController {@Autowiredprivate OrderService orderService;@Autowiredprivate ProductService productService;@GetMapping("/orders")public String showOrders(@RequestParam("userId") int userId, Model model) {List<Order> orders = orderService.getOrdersByUserId(userId);model.addAttribute("orders", orders);return "orders";}@PostMapping("/placeOrder")public String handlePlaceOrder(@RequestParam("userId") int userId, @RequestParam("cartItemIds") String cartItemIds) {Order order = new Order();order.setUserId(userId);order.setOrderDate(new Date());order.setTotalPrice(0.0);order.setStatus("Pending");List<OrderDetail> orderDetails = new ArrayList<>();String[] ids = cartItemIds.split(",");for (String id : ids) {int cartItemId = Integer.parseInt(id);CartItem cartItem = cartService.getCartItemById(cartItemId);Product product = productService.getProductById(cartItem.getProductId());OrderDetail orderDetail = new OrderDetail();orderDetail.setProductId(cartItem.getProductId());orderDetail.setQuantity(cartItem.getQuantity());orderDetail.setPrice(product.getPrice());orderDetails.add(orderDetail);order.setTotalPrice(order.getTotalPrice() + product.getPrice() * cartItem.getQuantity());}order.setOrderDetails(orderDetails);orderService.addOrder(order);// 清空购物车for (OrderDetail detail : orderDetails) {cartService.deleteCartItem(detail.getId());}return "redirect:/orders?userId=" + userId;}
}

前端页面

使用 JSP 创建前端页面。以下是简单的 JSP 示例:

login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Login</title>
</head>
<body>
<h2>Login</h2>
<form action="${pageContext.request.contextPath}/login" method="post">Username: <input type="text" name="username"><br>Password: <input type="password" name="password"><br><input type="submit" value="Login">
</form>
<c:if test="${not empty error}"><p style="color: red">${error}</p>
</c:if>
</body>
</html>
products.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head><title>Products</title>
</head>
<body>
<h2>Products</h2>
<table><tr><th>Name</th><th>Description</th><th>Price</th><th>Stock</th><th>Category</th><th>Action</th></tr><c:forEach items="${products}" var="product"><tr><td>${product.name}</td><td>${product.description}</td><td>${product.price}</td><td>${product.stock}</td><td>${product.category}</td><td><a href="${pageContext.request.contextPath}/product/${product.id}">View</a><a href="${pageContext.request.contextPath}/addToCart?userId=${user.id}&productId=${product.id}&quantity=1">Add to Cart</a></td></tr></c:forEach>
</table>
<a href="${pageContext.request.contextPath}/addProduct">Add New Product</a>
</body>
</html>
cart.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head><title>Cart</title>
</head>
<body>
<h2>Cart</h2>
<table><tr><th>Product Name</th><th>Quantity</th><th>Price</th><th>Action</th></tr><c:forEach items="${cartItems}" var="cartItem"><tr><td>${cartItem.product.name}</td><td>${cartItem.quantity}</td><td>${cartItem.product.price}</td><td><a href="${pageContext.request.contextPath}/removeFromCart?id=${cartItem.id}&userId=${user.id}">Remove</a></td></tr></c:forEach>
</table>
<a href="${pageContext.request.contextPath}/placeOrder?userId=${user.id}&cartItemIds=${cartItemIds}">Place Order</a>
</body>
</html>

测试与调试

对每个功能进行详细测试,确保所有功能都能正常工作。

部署与发布

编译最终版本的应用程序,并准备好 WAR 文件供 Tomcat 或其他应用服务器部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/467000.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue Element-UI 选择隐藏表格中的局部字段信息

一、功能需求分析 为什么需要这个功能&#xff1f; &#xff08;1&#xff09;简化信息&#xff0c;减少混乱&#xff1a; 就像整理抽屉&#xff0c;只留下常用的东西&#xff0c;这样找起来更快&#xff0c;看起来也更整洁。在表格中&#xff0c;只展示需要的字段&#xff…

【CANOE】【学习】【诊断功能】正响应抑制

文章目录 一、正响应抑制是什么&#xff1f;二.什么背景下产生三.作用四.如何实现五.capl代码如何实现总结diagGetSuppressRes 相关函数**Function Description****Syntax****Method (Dynamic)****Functionality****Parameters****Return Values****Availability****Example***…

纯血鸿蒙系统 HarmonyOS NEXT自动化测试实践

1、测试框架选择 hdc&#xff1a;类似 android 系统的 adb 命令&#xff0c;提供设备信息查询&#xff0c;包管理&#xff0c;调试相关的命令ohos.UiTest&#xff1a;鸿蒙 sdk 的一部分&#xff0c;类似 android sdk 里的uiautomator&#xff0c;基于 Accessibility 服务&…

基于vue3实现的聊天机器人前端(附代码)

<template><div class"container"><!-- 页面头部 --><header><h1>跟它说说话吧&#xff01;</h1><p>一个活泼的伙伴&#xff0c;为你提供情感支持&#xff01;</p></header><!-- 聊天容器 --><div c…

【赵渝强老师】Redis的RDB数据持久化

Redis 是内存数据库&#xff0c;如果不将内存中的数据库状态保存到磁盘&#xff0c;那么一旦服务器进程退出会造成服务器中的数据库状态也会消失。所以 Redis 提供了数据持久化功能。Redis支持两种方式的持久化&#xff0c;一种是RDB方式&#xff1b;另一种是AOF&#xff08;ap…

qt QFileSystemModel详解

1、概述 QFileSystemModel是Qt框架中的一个关键类&#xff0c;它继承自QAbstractItemModel&#xff0c;专门用于在Qt应用程序中展示文件系统的数据。这个模型提供了一个方便的接口&#xff0c;使得开发者可以轻松地在应用程序中集成文件和目录的树形结构&#xff0c;并通过视图…

ThingsBoard规则链节点:Push to Edge节点详解

引言 1. Push to Edge 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 边缘计算 3.2 本地数据处理 3.3 实时响应 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台&#xff0c;提供了设备管…

JavaScript 实现文本转语音功能

全篇大概2000 字&#xff08;含代码&#xff09;&#xff0c;建议阅读时间10分钟。 引言 我将向大家展示如何使用 JavaScript 和 Web Speech API 快速实现一个“文本转语音”的 Web 应用。通过这个教程&#xff0c;你将了解如何让浏览器将输入的文本朗读出来。 预览效果 一、…

动态规划理论基础和习题【力扣】【算法学习day.25】

前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非常非常高滴&am…

Linux的基本指令(一)

1.ls指令 功能&#xff1a;对于目录&#xff0c;该命令列出该目录下的所有子目录与文件。对于文件&#xff0c;将列出文件名以及信息。 常用选项&#xff1a; -a列出目录下的所有文件&#xff0c;包括以 . 开头的隐含文件。 -l列出文件的详细信息 举例&#xff1a; rooti…

智能化健身房管理:Spring Boot与Vue的创新解决方案

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

【Vue】简易博客项目跟做

项目框架搭建 1.使用vue create快速搭建vue项目 2.使用VC Code打开新生成的项目 端口号简单配置 修改vue.config.js文件&#xff0c;内容修改如下 所需库安装 npm install vue-resource --save --no-fund npm install vue-router3 --save --no-fund npm install axios --save …

Hadoop简介及单点伪分布式安装

目录 1. 大数据2. Hadoop简介3. Hadoop伪分布式安装4. Hadoop启动参考 1. 大数据 大数据的定义&#xff1a;一种规模大到在获取、存储、管理、分析方面大大超出传统数据库软件工具能力范围的数据集合。   特征&#xff1a;   1.海量的数据规模   2.快速的数据流转   3.…

windows server2019下载docker拉取redis等镜像并运行项目

一、基本概念 1、windows server 指由微软公司开发的“Windows”系列中的“服务器”版本。这意味着它是基于Windows操作系统的&#xff0c;但专门设计用于服务器环境&#xff0c;而不是普通的桌面或个人用户使用。主要用途包括服务器功能、用户和资源管理、虚拟化等 2、dock…

使用最新版的wvp和ZLMediaKit搭建Gb28181测试服务器

文章目录 说明安装1.安装nodejs简介安装步骤 2.安装java环境3.安装mysql安装修改密码 4.安装redis5.安装编译器6.安装cmake7.安装依赖库8.编译ZLMediaKit9.编译wvp-GB28181-pro 配置1.ZLMediaKit配置2.wvp-GB28181-pro配置2.1.配置ZLMediaKit连接信息2.2.28181服务器的配置2.3.…

Python程序设计 生成器

1. 基础概念 在讲迭代之前&#xff0c;先搞清楚这些名词&#xff1a; 循环&#xff08;loop&#xff09;&#xff0c;指的是在满足条件的情况下&#xff0c;重复执行同一段代码。比如&#xff0c;while 语句。迭代&#xff08;iterate&#xff09;&#xff0c;指的是按照某种…

mac m1 docker本地部署canal 监听mysql的binglog日志

mac m1 docker本地部署canal监听mysql的binglog日志(虚拟机同理) 根据黑马视频部署 1.docker 部署mysql 1.docker拉取mysql 镜像 因为m1是arm架构.需要多加一条信息 正常拉取 docker pull mysql:tagm1拉取 5.7的版本. tag需要自己指定版本 docker pull --platform linux/x…

[linux]docker基础

常见命令 Docker最常见的命令就是操作镜像、容器的命令&#xff0c;详见官方文档: Docker Docs 案例: 查看DockerHub&#xff0c;拉取Nginx镜像&#xff0c;创建并运行Nginx容器 在DockerHub中搜索Nginx镜像 拉取Nginx镜像 查看本地镜像列表 把镜像保持到本地 查看保持命令的…

C++builder中的人工智能(10)神经网络中的Sigmoid函数

在这篇文章中&#xff0c;我们将探讨最受欢迎的激活函数之一——Sigmoid函数。我们将解释什么是Logistic函数&#xff0c;以及它与Sigmoid函数的区别&#xff0c;并展示如何在C应用中使用这些函数。 目录 人工神经网络&#xff08;ANN&#xff09;中的激活函数是什么&#xff…

cursor:如何注销帐号和使用流量

点击右上角的设定图标 点击管理 在弹出的网页点登入 点”continue" 点SETING 了解最新信息请扫码关注&#xff1a;