当前位置: 首页 > news >正文

基于SSM(Spring + Spring MVC + MyBatis)框架构建一个图书馆仓储管理系统

基于SSM(Spring + Spring MVC + MyBatis)框架构建一个图书馆仓储管理系统是一个涉及多个功能模块的项目,包括但不限于图书管理、读者管理、借阅管理、归还管理等。

1. 环境准备

确保你已经安装了以下工具和环境:

  • Java Development Kit (JDK)
  • 集成开发环境 (IDE):如Eclipse, IntelliJ IDEA
  • 数据库:如MySQL, PostgreSQL
  • 构建工具:如Maven或Gradle
  • 服务器:如Apache Tomcat

2. 项目结构

创建一个新的Maven项目,并设置好目录结构。通常的Maven项目结构如下:

library-management-system
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com.example.lms
│   │   ├── resources
│   │   │   ├── mappers
│   │   │   ├── application.properties
│   │   │   └── mybatis-config.xml
│   │   └── webapp
│   │       ├── WEB-INF
│   │       │   ├── views
│   │       │   ├── web.xml
│   │       │   └── spring-servlet.xml
│   │       └── index.jsp
│   └── test
│       └── java
│           └── com.example.lms
└── pom.xml

3. Maven依赖配置 (pom.xml)

pom.xml中添加必要的依赖项:

<dependencies><!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.22</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.22</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.3.22</version></dependency><!-- MyBatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.10</version></dependency><dependency><groupId>org.mybatis.spring</groupId><artifactId>mybatis-spring</artifactId><version>2.0.6</version></dependency><!-- MySQL Connector --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version></dependency><!-- Servlet API --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><!-- JSP, JSTL --><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>
</dependencies>

4. 数据库设计

设计几个基本的表来支持图书馆的主要功能:

  • books:存储书籍信息。
  • readers:存储读者信息。
  • borrow_records:记录借阅信息。
  • return_records:记录归还信息。

示例SQL语句:

CREATE TABLE books (id INT AUTO_INCREMENT PRIMARY KEY,title VARCHAR(255) NOT NULL,author VARCHAR(255),isbn VARCHAR(13) UNIQUE,publisher VARCHAR(255),publish_date DATE,category VARCHAR(100),available_copies INT DEFAULT 0
);CREATE TABLE readers (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100) NOT NULL,gender ENUM('M', 'F') NOT NULL,birth_date DATE,phone_number VARCHAR(20),address TEXT
);CREATE TABLE borrow_records (id INT AUTO_INCREMENT PRIMARY KEY,reader_id INT NOT NULL,book_id INT NOT NULL,borrow_date DATE NOT NULL,due_date DATE NOT NULL,FOREIGN KEY (reader_id) REFERENCES readers(id),FOREIGN KEY (book_id) REFERENCES books(id)
);CREATE TABLE return_records (id INT AUTO_INCREMENT PRIMARY KEY,borrow_record_id INT NOT NULL,return_date DATE NOT NULL,FOREIGN KEY (borrow_record_id) REFERENCES borrow_records(id)
);

5. DAO层 (MyBatis Mapper)

为每个实体创建对应的Mapper接口和XML映射文件。

BookMapper.java:

package com.example.lms.dao;import com.example.lms.model.Book;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface BookMapper {@Select("SELECT * FROM books WHERE id = #{id}")Book selectById(Integer id);@Insert("INSERT INTO books(title, author, isbn, publisher, publish_date, category, available_copies) VALUES(#{title}, #{author}, #{isbn}, #{publisher}, #{publishDate}, #{category}, #{availableCopies})")@Options(useGeneratedKeys = true, keyProperty = "id")void insert(Book book);@Update("UPDATE books SET title=#{title}, author=#{author}, isbn=#{isbn}, publisher=#{publisher}, publish_date=#{publishDate}, category=#{category}, available_copies=#{availableCopies} WHERE id=#{id}")void update(Book book);@Delete("DELETE FROM books WHERE id=#{id}")void deleteById(Integer id);@Select("SELECT * FROM books")List<Book> selectAll();
}

ReaderMapper.java:

package com.example.lms.dao;import com.example.lms.model.Reader;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface ReaderMapper {@Select("SELECT * FROM readers WHERE id = #{id}")Reader selectById(Integer id);@Insert("INSERT INTO readers(name, gender, birth_date, phone_number, address) VALUES(#{name}, #{gender}, #{birthDate}, #{phoneNumber}, #{address})")@Options(useGeneratedKeys = true, keyProperty = "id")void insert(Reader reader);@Update("UPDATE readers SET name=#{name}, gender=#{gender}, birth_date=#{birthDate}, phone_number=#{phoneNumber}, address=#{address} WHERE id=#{id}")void update(Reader reader);@Delete("DELETE FROM readers WHERE id=#{id}")void deleteById(Integer id);@Select("SELECT * FROM readers")List<Reader> selectAll();
}

6. Service层

BookService.java:

package com.example.lms.service;import com.example.lms.dao.BookMapper;
import com.example.lms.model.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class BookService {@Autowiredprivate BookMapper bookMapper;public Book getBookById(Integer id) {return bookMapper.selectById(id);}public List<Book> getAllBooks() {return bookMapper.selectAll();}public void addBook(Book book) {bookMapper.insert(book);}public void updateBook(Book book) {bookMapper.update(book);}public void deleteBook(Integer id) {bookMapper.deleteById(id);}
}

ReaderService.java:

package com.example.lms.service;import com.example.lms.dao.ReaderMapper;
import com.example.lms.model.Reader;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class ReaderService {@Autowiredprivate ReaderMapper readerMapper;public Reader getReaderById(Integer id) {return readerMapper.selectById(id);}public List<Reader> getAllReaders() {return readerMapper.selectAll();}public void addReader(Reader reader) {readerMapper.insert(reader);}public void updateReader(Reader reader) {readerMapper.update(reader);}public void deleteReader(Integer id) {readerMapper.deleteById(id);}
}

7. Controller层

BookController.java:

package com.example.lms.controller;import com.example.lms.model.Book;
import com.example.lms.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import java.util.List;@Controller
@RequestMapping("/books")
public class BookController {@Autowiredprivate BookService bookService;@GetMappingpublic String listBooks(Model model) {List<Book> books = bookService.getAllBooks();model.addAttribute("books", books);return "bookList";}@GetMapping("/{id}")public String viewBook(@PathVariable Integer id, Model model) {Book book = bookService.getBookById(id);model.addAttribute("book", book);return "bookView";}@PostMappingpublic String addBook(@ModelAttribute Book book) {bookService.addBook(book);return "redirect:/books";}@PutMapping("/{id}")public String updateBook(@PathVariable Integer id, @ModelAttribute Book book) {book.setId(id);bookService.updateBook(book);return "redirect:/books/" + id;}@DeleteMapping("/{id}")public String deleteBook(@PathVariable Integer id) {bookService.deleteBook(id);return "redirect:/books";}
}

ReaderController.java:

package com.example.lms.controller;import com.example.lms.model.Reader;
import com.example.lms.service.ReaderService;
import org.springframework.beans.factory.annotation@Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import java.util.List;@Controller
@RequestMapping("/readers")
public class ReaderController {@Autowiredprivate ReaderService readerService;@GetMappingpublic String listReaders(Model model) {List<Reader> readers = readerService.getAllReaders();model.addAttribute("readers", readers);return "readerList";}@GetMapping("/{id}")public String viewReader(@PathVariable Integer id, Model model) {Reader reader = readerService.getReaderById(id);model.addAttribute("reader", reader);return "readerView";}@PostMappingpublic String addReader(@ModelAttribute Reader reader) {readerService.addReader(reader);return "redirect:/readers";}@PutMapping("/{id}")public String updateReader(@PathVariable Integer id, @ModelAttribute Reader reader) {reader.setId(id);readerService.updateReader(reader);return "redirect:/readers/" + id;}@DeleteMapping("/{id}")public String deleteReader(@PathVariable Integer id) {readerService.deleteReader(id);return "redirect:/readers";}
}

8. 配置文件

application.properties:

# Database connection settings
spring.datasource.url=jdbc:mysql://localhost:3306/library_management?useSSL=false&serverTimezone=UTC
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# MyBatis configuration
mybatis.mapper-locations=classpath:mappers/*.xml
mybatis.type-aliases-package=com.example.lms.model

mybatis-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><settings><setting name="cacheEnabled" value="true"/><setting name="lazyLoadingEnabled" value="false"/></settings>
</configuration>

spring-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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:tx="http://www.springframework.org/schema/tx"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/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!-- Component scanning for autowiring and detecting beans --><context:component-scan base-package="com.example.lms" /><!-- Data source configuration --><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="${spring.datasource.driver-class-name}" /><property name="url" value="${spring.datasource.url}" /><property name="username" value="${spring.datasource.username}" /><property name="password" value="${spring.datasource.password}" /></bean><!-- Transaction manager for handling transactions --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- Enable annotation-driven transaction management --><tx:annotation-driven transaction-manager="transactionManager" /><!-- MyBatis SqlSessionFactoryBean configuration --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="classpath:mybatis-config.xml" /><property name="mapperLocations" value="classpath*:mappers/*.xml" /></bean><!-- MyBatis mapper scanner configuration --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.example.lms.dao" /></bean><!-- View resolver for JSP --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/" /><property name="suffix" value=".jsp" /></bean>
</beans>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><display-name>Library Management System</display-name><!-- Front controller for Spring MVC --><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- Character encoding filter --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
</web-app>

9. 视图层 (JSP)

为书籍和读者列表创建简单的JSP页面。

bookList.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Book List</title>
</head>
<body>
<h1>Book List</h1>
<table border="1"><tr><th>ID</th><th>Title</th><th>Author</th><th>ISBN</th><th>Publisher</th><th>Publish Date</th><th>Category</th><th>Available Copies</th><th>Actions</th></tr><c:forEach var="book" items="${books}"><tr><td>${book.id}</td><td>${book.title}</td><td>${book.author}</td><td>${book.isbn}</td><td>${book.publisher}</td><td>${book.publishDate}</td><td>${book.category}</td><td>${book.availableCopies}</td><td><a href="/books/${book.id}">View</a><a href="/books/${book.id}/edit">Edit</a><a href="/books/${book.id}/delete" οnclick="return confirm('Are you sure you want to delete this book?')">Delete</a></td></tr></c:forEach>
</table>
<a href="/books/new">Add New Book</a>
</body>
</html>

readerList.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Reader List</title>
</head>
<body>
<h1>Reader List</h1>
<table border="1"><tr><th>ID</th><th>Name</th><th>Gender</th><th>Birth Date</th><th>Phone Number</th><th>Address</th><th>Actions</th></tr><c:forEach var="reader" items="${readers}"><tr><td>${reader.id}</td><td>${reader.name}</td><td>${reader.gender}</td><td>${reader.birthDate}</td><td>${reader.phoneNumber}</td><td>${reader.address}</td><td><a href="/readers/${reader.id}">View</a><a href="/readers/${reader.id}/edit">Edit</a><a href="/readers/${reader.id}/delete" οnclick="return confirm('Are you sure you want to delete this reader?')">Delete</a></td></tr></c:forEach>
</table>
<a href="/readers/new">Add New Reader</a>
</body>
</html>

10. 启动项目

确保你的数据库已经启动,并且根据application.properties中的配置正确设置了数据源连接信息。将项目部署到Tomcat服务器上,启动服务器并访问应用。

11. 扩展功能

为了使系统更加完整和实用,你可以考虑添加以下功能:

  • 用户认证和权限控制:使用Spring Security来保护系统资源。
  • 日志记录:使用Log4j或SLF4J进行日志记录。
  • 搜索功能:允许用户通过关键字搜索书籍或读者。
  • 统计报表:生成借阅情况的统计报表。
  • 邮件通知:当书籍到期时,向读者发送提醒邮件。

相关文章:

基于SSM(Spring + Spring MVC + MyBatis)框架构建一个图书馆仓储管理系统

基于SSM&#xff08;Spring Spring MVC MyBatis&#xff09;框架构建一个图书馆仓储管理系统是一个涉及多个功能模块的项目&#xff0c;包括但不限于图书管理、读者管理、借阅管理、归还管理等。 1. 环境准备 确保你已经安装了以下工具和环境&#xff1a; Java Developmen…...

《智驱新材合成:AI 点亮创新路径之光》

在科技浪潮汹涌澎湃的当下&#xff0c;新材料的探寻成为众多领域突破发展瓶颈的关键钥匙。而人工智能&#xff08;AI&#xff09;作为前沿科技的璀璨星辰&#xff0c;正以其独特的创新光芒照亮新材料合成路径的未知之境&#xff0c;引发了科研界与产业界的广泛关注与热议&#…...

【C++ 基础】命名空间

命名空间 命名空间 头文件:内有许多库函数&#xff08;相当于书柜&#xff09;&#xff0c;对库函数进行管理 命名空间:内有许多函数&#xff08;相当于书柜的一个分区&#xff09;&#xff0c;对函数进行管理 语法格式 namespace 命名空间标识符{...命名空间成员}//花括号…...

120页PPT讲解ChatGPT如何与财务数字化转型的业财融合

此方案主要聚焦于利用ChatGPT技术与数字化转型推动业财融合&#xff0c;实现企业的价值最大化。首先&#xff0c;通过ChatGPT技术&#xff0c;企业可以构建生成式对话机器人&#xff0c;自动回答常见问题&#xff0c;减轻人工客服的压力&#xff0c;提高响应速度。这种机器人具…...

新闻网站的安全性:保护信息与用户隐私

2.1vue技术 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。 [5] 与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项…...

Flutter动画学习二

如何在 Flutter 中使用自定义动画和剪裁&#xff08;clipping&#xff09;实现一个简单的动画效果。 前置知识点学习 AnimationController AnimationController 是 Flutter 动画框架中的一个核心类&#xff0c;用于控制动画的生命周期和状态。它提供了一种灵活的方式来定义动…...

flutter教程01 flutter项目的目录结构

Flutter开发基础 Dart语言&#xff1a; Flutter使用Dart语言进行开发。你需要熟悉Dart的基本语法和特性&#xff0c;如变量、数据类型、函数、类、继承、接口等。 Flutter组件&#xff1a; Flutter提供了丰富的UI组件库&#xff0c;你可以使用这些组件来构建你的用户界面。了…...

微软在AI时代的战略布局和挑战

微软的CEO萨提亚纳德拉&#xff08;Satya Nadella&#xff09;在与投资人比尔格里&#xff08;Bill Gurley&#xff09;和布拉德格斯特纳&#xff08;Brad Gerstner&#xff09;的一场深度对话中&#xff0c;详细回顾了微软在AI时代的战略布局与所面临的挑战。这场对话不仅总结…...

QT:程序异常结束原因

在确定DLL库没有问题的情况下&#xff0c;大概率是因为以下两点问题导致程序异常结束。 1、程序中存在对象只声明&#xff0c;未创建就使用的情况。程序中只声明了一个对象QObject * object&#xff0c;未进行object new QObject就直接使用object。这样&#xff0c;程序编译构…...

Linux搭建TRELLIS详细流程

TRELLIS是最新的3D生成模型,官网地址如下: https://github.com/microsoft/TRELLIS 下面是详细的搭建流程。 由于是在Ubuntu系统上搭建的,下面操作仅限Ubuntu系统查看。 不过Windows系统大同小异,而且青龙大佬已经做了相关整理。 Windows系统的可以去看青龙大佬的b站视…...

红米Note 9 Pro5G刷小米官方系统

前言 刷机有2种方式&#xff1a;线刷 和 卡刷。 线刷 线刷&#xff1a;需要用电脑刷机工具&#xff0c;例如&#xff1a;XiaoMiFlash.exe&#xff0c;通过电脑和数据线对设备进行刷机。 适用场景&#xff1a; 系统损坏无法开机。恢复官方出厂固件。刷机失败导致软砖、硬砖的…...

仓颉编程语言功能剖析:从设计理念到实际应用

引言 随着编程语言的发展&#xff0c;越来越多新兴语言试图解决传统编程语言的痛点&#xff0c;其中华为推出的仓颉编程语言&#xff08;以下简称"仓颉"&#xff09;以其创新的理念和功能备受瞩目。仓颉以高效、易用、智能为核心设计目标&#xff0c;专注于提升开发…...

JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介

1. 基本概念 1.1、前言 web开发&#xff1a; web&#xff0c;网页的意思&#xff0c;www.baidu.com静态 web html,css提供给所有人看的数据始终不会发生变化&#xff01; 动态 web 淘宝&#xff0c;几乎是所有的网站&#xff1b;提供给所有人看的数据始终会发生变化&#xf…...

五十一:HPACK如何减少HTTP头部的大小?

在现代的Web通信中&#xff0c;HTTP是最常用的协议。然而&#xff0c;随着网络应用程序的复杂化&#xff0c;HTTP头部的大小迅速增加&#xff0c;尤其是在HTTP/2中&#xff0c;由于其多路复用特性&#xff0c;多个请求和响应共享同一个连接&#xff0c;头部大小对性能的影响变得…...

windows11家庭版安装docker无法识别基于wsl2的Ubuntu

软件环境&#xff1a;windows11家庭版安装WSL2,Ubuntu22.04&#xff0c;docker4.34.2 问题描述&#xff1a;安装docker时&#xff0c;设置阶段无法识别Ubuntu22.04. 原因&#xff1a;windows11家庭版本默认没有Hyper-V 解决方案&#xff1a;将下述代码保存在新建记事本中&am…...

利用Spring Cloud Gateway Predicate优化微服务路由策略

利用Spring Cloud Gateway Predicate优化微服务路由策略 一、Predicate简介 Spring Cloud Gateway 是 Spring 生态系统中用于构建 API 网关的框架&#xff0c;它基于 Project Reactor 和 Netty 构建&#xff0c;旨在提供一种高效且灵活的方式来处理 HTTP 请求和响应。 Spring …...

谷歌浏览器的网络安全检测工具介绍

作为全球最受欢迎的浏览器之一&#xff0c;谷歌浏览器不仅提供了快速、便捷的浏览体验&#xff0c;还内置了一系列强大的网络安全检测工具&#xff0c;帮助用户识别潜在的网络威胁&#xff0c;保护个人隐私和数据安全。本文将详细介绍谷歌浏览器中的几项关键网络安全检测功能&a…...

Debian系统宝塔面板安装LiteSpeed Memcached(LSMCD)

参考链接 1. 官网指引&#xff1a; https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:lsmcd:installation 2. 安装OpenLiteSpeed官方LSMCD对象缓存替换Memcached详细图文教程 - 搬主题 实操记录&#xff1a; 首先LSMCD 默认的端口是11211&#xff0c;…...

termux下ubuntu换arm清华源

原官方源 deb http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiversedeb http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiversedeb http://ports.ubuntu.com/ubuntu-ports jammy-security main restricted un…...

计算机网络——练习题

一. 单选题&#xff08;共27题&#xff0c;67.5分&#xff09; 1. (单选题)计算机网络的最突出的优点是____。 A. 运算速度快 B. 运算精度高 C. 存储容量大 D. 资源共享 我的答案: D:资源共享;正确答案: D:资源共享; 2.5分 答案解析&#xff1a; 2. (单选题)TCP/IP协…...

单机游戏《野狗子》游戏运行时提示dbghelp.dll缺失是什么原因?dbghelp.dll缺失要怎么解决?

《野狗子》游戏运行时提示dbghelp.dll缺失&#xff1a;原因与解决方案 在畅游《野狗子》这款引人入胜的游戏世界时&#xff0c;突然遭遇“dbghelp.dll缺失”的错误提示&#xff0c;无疑会给玩家的探险之旅蒙上一层阴影。作为一名深耕软件开发领域的从业者&#xff0c;我深知此…...

飞搭系列 | 条件动态控制,打造个性化数字体验

前言 汉得飞搭aPaaS低代码平台&#xff08;FEIDA&#xff0c;以下简称“飞搭”&#xff09;是基于低代码理念打造的融合 aPaaS 平台&#xff0c;助力企业快速搭建业务应用。作为 HZERO 生态的重要组成部分&#xff0c;致力于充分融合 HZERO 的各平台能力&#xff0c;提供企业用…...

ssr实现方案

目录 序言 一、流程 二、前端要做的事情 三、节点介绍 四、总结 序言 本文不是详细的实现过程&#xff0c;是让你最快最直接的理解ssr的真正实现方法&#xff0c;有前端经验的同学&#xff0c;能够很好的理解过程&#xff0c;细节根据具体项目实现 一、前端要做的事情 1.…...

STM32高级物联网通信之以太网通讯

目录 以太网通讯基础知识 什么是以太网 互联网和以太网的区别 1)概念与范围 (1)互联网 (2)以太网 2)技术特点 (1)互联网 (2)以太网 3)应用场景 (1)互联网 (2)以太网 以太网的层次 1)物理层 2)数据链路层 OSI 7层模型 TCPIP 4层模型 一些常见…...

以太网帧、IP数据报图解

注&#xff1a;本文为 “以太网帧、IP数据报”图解相关文章合辑。 未整理去重。 以太网帧、IP数据报的图解格式&#xff08;包含相关例题讲解&#xff09; jueyuanfengsheng2023-08-07 11:49 一、基础知识 UDP 段、IP 数据包&#xff0c;以太网帧图示 通信过程中&#xff…...

外包干了两年,技术退步明显...

先说一下自己的情况&#xff0c;普通本科&#xff0c;曾在外包干了2年多的功能测试&#xff0c;再加上大环境不好&#xff0c;那时我整个人心惊胆战的&#xff0c;怕自己卷铺盖走人了&#xff0c;所以当时我感觉自己不能够在这样蹉跎下去了&#xff0c;长时间呆在一个舒适的环境…...

AI可信论坛亮点:合合信息分享视觉内容安全技术前沿

前言 在当今科技迅猛发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;技术正以前所未有的速度改变着我们的生活与工作方式。作为AI领域的重要盛会&#xff0c;CSIG青年科学家会议AI可信论坛汇聚了众多青年科学家与业界精英&#xff0c;共同探讨AI技术的最新进展、挑…...

vue中proxy代理配置(测试一)

接口地址&#xff1a;http://jsonplaceholder.typicode.com/posts 1、配置一&#xff08;代理没起作用&#xff09; &#xff08;1&#xff09;设置baseURL为http://jsonplaceholder.typicode.com &#xff08;2&#xff09;proxy为 ‘/api’&#xff1a;’ ’ &#xff08;3&a…...

通用人工智能的关键:统一语言描述万物

当今世界&#xff0c;人工智能&#xff08;AI&#xff09;正以前所未有的速度推进着人类社会的进步。从最初的简单计算到如今能够执行复杂任务的智能系统&#xff0c;AI 的每一次飞跃都伴随着理解世界能力的显著提升。然而&#xff0c;要实现真正的通用人工智能——即能够像人类…...

使用QML实现播放器进度条效果

使用QML实现播放进度效果 QML Slider介绍 直接上DEMO如下&#xff1a; Slider {width: 300;height: 20;orientation: Qt.Vertical; //决定slider是横还是竖 默认是HorizontalstepSize: 0.1;value: 0.2;tickmarksEnabled: true; //显示刻度}效果图如下 那么我先改变滑块跟滚轮…...

TowardsDataScience 博客中文翻译 2018~2024(一百二十三)

TowardsDataScience 博客中文翻译 2018~2024&#xff08;一百二十三&#xff09; 引言 从 2018 年到 2024 年&#xff0c;数据科学的进展超越了许多技术领域的速度。Towards Data Science 博客依然是这个领域的关键平台&#xff0c;记录了从基础工具到前沿技术的多方面发展。…...

14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误“

出现这个错误是因为使用的 CentOS 7 仓库已经被归档&#xff0c;当前的镜像地址无法找到所需的文件。CentOS 7 的官方支持已经结束&#xff0c;部分仓库已被移至归档库。这导致了你的 yum 命令无法找到所需的元数据文件。CentOS 7 的官方仓库在 2024 年 6 月 30 日之后已经停止…...

将 ASP.NET Core 应用程序的日志保存到 D 盘的文件中 (如 Serilog)

将 ASP.NET Core 应用程序的日志保存到 D 盘的文件中&#xff0c;可以使用第三方日志库&#xff08;如 Serilog&#xff09;来实现。Serilog 是一个流行的日志库&#xff0c;支持将日志输出到文件、控制台、数据库等多种目标。 以下是实现步骤&#xff1a; 1. 安装 Serilog 相…...

深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道20241223

深入探讨 Go 中的高级表单验证与翻译&#xff1a;Gin 与 Validator 的实践之道 在现代后端开发中&#xff0c;表单验证是保证数据完整性和服务稳定性的核心环节。如何优雅、高效地实现表单验证&#xff0c;同时提供人性化的错误提示&#xff0c;是每位开发者的必修课。在本文中…...

相机主要调试参数

解析度测试 - 解释如何衡量摄像头捕捉细节的能力&#xff0c;确保图像清晰。锐度评估 - 教你如何判断图像边缘的清晰程度&#xff0c;以优化视觉效果。色散与色彩还原 - 分析色彩准确性&#xff0c;确保所见即所得的色彩一致性。白平衡校正 - 确保在各种光源下拍摄的照片颜色自…...

JAVA智慧养老养老护理帮忙代办陪诊陪护小程序APP源码

JAVA智慧养老养老护理帮忙代办陪诊陪护小程序APP源码&#xff1a;引领智慧养老新时代 在当今老龄化社会日益严重的背景下&#xff0c;智慧养老已成为解决养老问题的重要途径。我们推出的JAVA智慧养老养老护理帮忙代办陪诊陪护小程序APP源码&#xff0c;正是基于这一需求而研发…...

一个简单封装的的nodejs缓存对象

我们在日常编码中&#xff0c;经常会用到缓存&#xff0c;而一个有效的缓存管理&#xff0c;也是大家必不可少的工具。而nodejs没有内置专用的缓存对象&#xff0c;并且由于js的作用域链的原因&#xff0c;很多变量使用起来容易出错&#xff0c;如果用一个通用的缓存管理起来&a…...

【ELK】filebeat采集数据输出到kafka指定topic

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 背景filebeat主体配置filebeat.inputs部分filebeat.output部分 filebeat完整配置 背景 今天收到需求&#xff0c;生产环境中通需要优化filebeat的输出&#xff0c;…...

Qt 6 QML Settings location 不创建指定路径文件

在 Qt QML 项目中可以使用Qt QSettings QML 版 Settings 方便数据持久化&#xff0c;具体使用可以参考Qt 文档&#xff0c;这里主要简单记录一下从Qt 5 升级到 Qt 6 后&#xff0c;没有创建指定的文件。在Qt 5中是使用 fileName 属性来指定文件路径&#xff0c;如下&#xff0…...

LabVIEW如何学习FPGA开发

FPGA&#xff08;现场可编程门阵列&#xff09;开发因其高性能、低延迟的特点&#xff0c;在实时控制和高速数据处理领域具有重要地位。LabVIEW FPGA模块为开发者提供了一个图形化编程平台&#xff0c;降低了FPGA开发的门槛。本篇文章将详细介绍LabVIEW FPGA开发的学习路径&…...

idea设置控制台日志输出自动换行

文章目录 1. 原因2. 方法一&#xff1a;3. 方法二&#xff1a; 1. 原因 你是否碰到ideal控制台输入日志是一行的效果&#xff0c;那是因为带了soft wrap。 2. 方法一&#xff1a; 最新版的IDEA设置控制台自动换行位置如下&#xff1a; Setting->Editor->General->C…...

帧缓存的分配

帧缓存实际上就是一块内存。在 Android 系统中分配与回收帧缓存&#xff0c;使用的是一个叫 ION 的内核模块&#xff0c;App 使用 ioctl 系统调用后&#xff0c;会在内核内存中分配一块符合要求的内存&#xff0c;用户态会拿到一个 fd&#xff08;有的地方也称之为 handle&…...

Spitfire浏览器:为CodiggerDesktop打造的轻量级浏览新选择

近期&#xff0c;一款名为Spitfire的专业级轻量级浏览器凭借其卓越的性能和便捷的使用体验&#xff0c;吸引了科技界的广泛关注。这款浏览器是专为CodiggerDesktop用户量身打造的&#xff0c;旨在提供高速、流畅的浏览服务&#xff0c;满足开发者和设计者的多元化需求。 Spitfi…...

etcd+京东hotkey探测使用

qhotKey链接 京东hotkey把热点数据默认缓存在了本地缓存caffeine中&#xff0c;也可以存到redis中&#xff0c;但是京东hotkey的SDK没有redis的实现方法&#xff0c;因此需要自己实现。 官方目录结构下&#xff1a;分别是client客户端&#xff08;要打包引入到自己的项目&…...

从源码分析swift GCD_DispatchGroup

前言&#xff1a; 最近在写需求的时候用到了DispatchGroup&#xff0c;一直没有深入去学习&#xff0c;既然遇到了那么就总结下吧。。。。 基本介绍&#xff1a; 任务组&#xff08;DispatchGroup&#xff09; DispatchGroup 可以将多个任务组合在一起并且监听它们的完成状态。…...

【最后203篇系列】002 - 两个小坑(容器时间错误和kafka模块报错

这里两个小坑填了&#xff0c;希望有用。 1 Multiple conflicting time zone configurations found:\n/etc/timezone: Asia/Shanghai\n/etc/localtime is a symlink to: Etc/UTC\nFix the configuration, or set the time zone in a TZ environment variable. 我碰到这个错误…...

StarRocks 生产部署一套集群,存储空间如何规划?

背景&#xff1a;StarRocks 3.2&#xff0c;存储一体 使用场景&#xff1a;多分析、小查询多单但不高、数据量几百T FE 存储 由于 FE 节点仅在其存储中维护 StarRocks 的元数据&#xff0c;因此在大多数场景下&#xff0c;每个 FE 节点只需要 100 GB 的 HDD 存储&#xff0c…...

WebGL 项目外包开发流程

WebGL 项目外包开发流程与一般的软件项目外包流程类似&#xff0c;但由于 WebGL 的特殊性&#xff0c;在某些环节需要特别注意。以下是一个详细的 WebGL 项目外包开发流程。 1. 需求分析与定义 (明确目标是关键)&#xff1a; 客户沟通与需求收集&#xff1a; 与客户进行深入沟…...

SQLMAP

Taeget 实践内容&#xff1a;练习使用 SQLMap 进行自动化 SQL 注入。 涉及知识点&#xff1a;理解 SQL 注入、SQLMap 工具使用、自动化攻击、Web 应用安全。 Trial 说明&#xff1a;Sqlmap是一个开源的渗透测试工具&#xff0c;可以自动检测和利用SQL注入漏洞&#xff0c;并…...

windwos defender实现白名单效果(除了指定应用或端口其它一律禁止)禁止服务器上网

一、应用场景说明 当我们的一台windows服务器中毒&#xff0c;变成别人肉鸡&#xff0c;不断向外请示非法网站或攻击其它服务器。 要彻底清除相关木马或病毒往往需要的时间比较长&#xff0c;比较有效的方法是禁止服务器主动向外发包除了网站端口和远程程序除外。 其实这就是一…...