当前位置: 首页 > 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…...

web的五个Observer API

IntersectionObserver&#xff1a; 一个元素从不可见到可见&#xff0c;从可见到不可见 ??IntersectionObserver是一种浏览器提供的 JavaScript API&#xff0c;用于监测元素与视窗的交叉状态。它可以告诉开发者一个元素是否进入或离开视窗&#xff0c;以及两者的交叉区域的…...

Java基础:抽象类与接口

1、抽象类和接口的定义&#xff1a; &#xff08;1&#xff09;抽象类主要用来抽取子类的通用特性&#xff0c;作为子类的模板&#xff0c;它不能被实例化&#xff0c;只能被用作为子类的超类。 &#xff08;2&#xff09;接口是抽象方法的集合&#xff0c;声明了一系列的方法…...

llama.cpp:PC端测试 MobileVLM -- 电脑端部署图生文大模型

llama.cpp&#xff1a;PC端测试 MobileVLM 1.环境需要2.构建项目3.PC测试 1.环境需要 以下是经实验验证可行的环境参考&#xff0c;也可尝试其他版本。 &#xff08;1&#xff09;PC&#xff1a;Ubuntu 22.04.4 &#xff08;2&#xff09;软件环境&#xff1a;如下表所示 工…...

Web前端基础知识(一)

前端是构建网页的一部分&#xff0c;负责用户在浏览器中看到和与之交互的内容。 网页是在浏览器中呈现内容的文档或页面。 通常&#xff0c;网页使用HTML、CSS、JavaScript(JS)组成。 HTML:定义了页面的结构和内容。包括文本、图像、链接等。 CSS&#xff1a;定义页面的样式…...

基于谱聚类的多模态多目标浣熊优化算法(MMOCOA-SC)求解ZDT1-ZDT4,ZDT6和工程应用--盘式制动器优化,MATLAB代码

一、MMOCOA-SC介绍 基于谱聚类的多模态多目标浣熊优化算法&#xff08;Multimodal Multi-Objective Coati Optimization Algorithm Based on Spectral Clustering&#xff0c;MMOCOA-SC&#xff09;是2024年提出的一种多模态多目标优化算法&#xff0c;该算法的核心在于使用谱…...

国标GB28181摄像机接入EasyGBS如何通过流媒体技术提升安防监控效率?

随着信息技术的飞速发展&#xff0c;视频监控技术已成为维护公共安全和提升管理效率的重要手段。国标GB28181作为安防行业的统一设备接入与流媒体传输标准&#xff0c;为视频监控系统的互联互通提供了坚实的基础。EasyGBS作为一款基于GB28181协议的视频云服务平台&#xff0c;通…...

[Unity] ShaderGraph动态修改Keyword Enum,实现不同效果一键切换

上次更新已然四个月前&#xff0c;零零散散的工作结束&#xff0c;终于有时间写点东西记录一下~ 实际使用中&#xff0c;经常会碰到同一个对象需要切换不同的材质&#xff0c;固然可以通过C#直接替换材质球。 或者在ShaderGraph中使用Comparison配合Branch实现切换&#xff…...

Unity开发哪里下载安卓Android-NDK-r21d,外加Android Studio打包实验

NDK下载方法&#xff08;是r21d,不是r21e, 不是abc, 是d版本呢) google的东西&#xff0c;居然是完全开源的 真的不是很多公司能做到&#xff0c;和那种伪搜索引擎是不同的 到底什么时候google才会开始造车 不过风险很多&#xff0c;最好不要合资&#xff0c;风险更大 Andr…...

FFTW基本概念与安装使用

FFTW基本概念与安装使用 1 基本概念2 编译安装3 使用实例3.1 单线程3.2 多线程 本文主要介绍FFTW库的基本概念、编译安装和使用方法。 1 基本概念 FFTW (Fastest Fourier Transform in the West)是C语言的一个子程序库&#xff0c;用于计算一维或多维离散傅里叶变换(Discrete …...

【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析

Hiヽ(゜▽゜ )&#xff0d;欢迎来到蓝染Aizen的CSDN博客~ &#x1f525; 博客主页&#xff1a; 【✨蓝染 の Blog&#x1f618;】 &#x1f496;感谢大家点赞&#x1f44d; 收藏⭐ 评论✍ 文章目录 行为型模式1、模板方法模式&#xff08;1&#xff09;概述&#xff08;2&…...

教师如何打造专属私密成绩查询系统?

期末的校园&#xff0c;被一种特殊的氛围所笼罩。老师们如同辛勤的工匠&#xff0c;精心打磨着每一个教学环节。复习阶段&#xff0c;他们在知识的宝库中精挑细选&#xff0c;把一学期的重点内容一一梳理&#xff0c;为学生们打造出系统的复习框架。课堂上&#xff0c;他们激情…...

【1224】C选填(字符串\0占大小,类大小函数调用,const定义常量,逗号表达式取尾,abs返回值

1.设有数组定义: char array[]"China"; 则数组array所占的存储空间为__________ 6 注意要加上\0的位置 数组中考虑‘\0’&#xff0c;sizeof()判断大小也要考虑‘\0’ 2.初始化数组char[] strArray"kuai-shou"&#xff0c;strArray的长度为&#xff08;&am…...

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——终篇

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——终篇 ​ 至此&#xff0c;本系列的所有备赛分享已经结束 ​ 首先说说备赛的过程吧&#xff0c;这次比赛&#xff0c;真的是让我学到了太多书本上学不到的东西。一开始&#xff0c;对统筹控制还很模糊&a…...

复合机器人:开启智能制造新时代

在当今科技飞速发展的时代&#xff0c;智能制造已成为制造业转型升级的关键驱动力。而复合机器人作为智能制造领域的一颗璀璨新星&#xff0c;正以其卓越的性能和创新的设计&#xff0c;为各行各业带来前所未有的变革与机遇。 复合机器人&#xff0c;顾名思义&#xff0c;是融…...

装饰者模式

代码详解&#xff1a;【设计模式】Java 设计模式之装饰者模式&#xff08;Decorator&#xff09;_java 装饰者模式-CSDN博客 // 抽象构件角色 public interface Component {void operation(); }// 具体构件角色 public class ConcreteComponent implements Component {Override…...

【机器学习】当教育遇上机器学习:打破传统,开启因材施教新时代

我的个人主页 我的领域&#xff1a;人工智能篇&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01;&#x1f44d;点赞 收藏❤ 教育是人类社会发展的基石&#xff0c;然而传统教育模式往往难以满足每个学生的个性化需求。随着机器学习技术的兴起&#xff0c;教…...

【蓝桥杯每日一题】分糖果——DFS

分糖果 蓝桥杯每日一题 2024-12-24 分糖果 DFS 题目描述 两种糖果分别有 9 个和 16 个&#xff0c;要全部分给 7 个小朋友&#xff0c;每个小朋友得到的糖果总数最少为 2 个最多为 5 个&#xff0c;问有多少种不同的分法。糖果必须全部分完。 只要有其中一个小朋友在两种方案中…...

information_schema是什么?

前言 在现代数据驱动的应用开发中&#xff0c;理解和管理数据库结构变得尤为重要。几乎所有的SQL数据库管理系统&#xff08;DBMS&#xff09;都提供了一个名为 information_schema 的虚拟数据库。它不仅是一个了解数据库内部结构的强大工具&#xff0c;也是一个实现跨平台兼容…...

案例分析-THC7984设计问题报告

目录 简介 配置信息 结论: 简介 使用的环境 AD芯片:THC7984 VGA信号:通过电脑主机产生1024x768 60HZ信号。 配置信息 AD数字数字产生通过FPGA接收。 AD寄存器配置(第一个数数据,第二个是地址): iic_write_reg 1 0x1e iic_write_reg 02 0x5...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...