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

基于 JAVASSM(Java + Spring + Spring MVC + MyBatis)框架开发一个医院挂号系统

基于 JAVASSM(Java + Spring + Spring MVC + MyBatis)框架开发一个医院挂号系统是一个实用的项目。
在这里插入图片描述

步骤一:需求分析

明确系统需要实现的功能,比如:

  • 用户注册和登录
  • 查看医生列表
  • 预约挂号
  • 查看预约记录
  • 取消预约
  • 管理员管理医生信息和预约记录

步骤二:设计数据库

使用 MySQL 数据库存储系统数据。设计数据库表结构如下:

用户表(users)
  • id (INT, 主键, 自增)
  • username (VARCHAR)
  • password (VARCHAR)
  • email (VARCHAR)
  • phone (VARCHAR)
医生表(doctors)
  • id (INT, 主键, 自增)
  • name (VARCHAR)
  • department (VARCHAR)
  • introduction (TEXT)
  • schedule (TEXT)
预约表(appointments)
  • id (INT, 主键, 自增)
  • user_id (INT, 外键)
  • doctor_id (INT, 外键)
  • appointment_time (DATETIME)
  • status (VARCHAR)

步骤三:选择开发工具

使用 IntelliJ IDEA 或 Eclipse 作为开发环境。

步骤四:搭建项目结构

  1. 创建 Maven 项目。
  2. 添加必要的依赖项(Spring、Spring MVC、MyBatis、MySQL 驱动等)。

步骤五:配置文件

application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/hospital_registration?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.hospital"/><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/DoctorMapper.xml"/><mapper resource="mapper/AppointmentMapper.xml"/></mappers>
</configuration>

步骤六:编写实体类

User.java
package com.hospital.entity;public class User {private int id;private String username;private String password;private String email;private String phone;// Getters and Setters
}
Doctor.java
package com.hospital.entity;public class Doctor {private int id;private String name;private String department;private String introduction;private String schedule;// Getters and Setters
}
Appointment.java
package com.hospital.entity;import java.util.Date;public class Appointment {private int id;private int userId;private int doctorId;private Date appointmentTime;private String status;// Getters and Setters
}

步骤七:编写 DAO 层

UserMapper.java
package com.hospital.mapper;import com.hospital.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);
}
DoctorMapper.java
package com.hospital.mapper;import com.hospital.entity.Doctor;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface DoctorMapper {@Select("SELECT * FROM doctors")List<Doctor> getAllDoctors();@Select("SELECT * FROM doctors WHERE id = #{id}")Doctor getDoctorById(int id);@Insert("INSERT INTO doctors(name, department, introduction, schedule) VALUES(#{name}, #{department}, #{introduction}, #{schedule})")@Options(useGeneratedKeys = true, keyProperty = "id")void addDoctor(Doctor doctor);@Update("UPDATE doctors SET name=#{name}, department=#{department}, introduction=#{introduction}, schedule=#{schedule} WHERE id=#{id}")void updateDoctor(Doctor doctor);@Delete("DELETE FROM doctors WHERE id=#{id}")void deleteDoctor(int id);
}
AppointmentMapper.java
package com.hospital.mapper;import com.hospital.entity.Appointment;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface AppointmentMapper {@Select("SELECT * FROM appointments WHERE user_id = #{userId}")List<Appointment> getAppointmentsByUserId(int userId);@Select("SELECT * FROM appointments WHERE id = #{id}")Appointment getAppointmentById(int id);@Insert("INSERT INTO appointments(user_id, doctor_id, appointment_time, status) VALUES(#{userId}, #{doctorId}, #{appointmentTime}, #{status})")@Options(useGeneratedKeys = true, keyProperty = "id")void addAppointment(Appointment appointment);@Update("UPDATE appointments SET appointment_time=#{appointmentTime}, status=#{status} WHERE id=#{id}")void updateAppointment(Appointment appointment);@Delete("DELETE FROM appointments WHERE id=#{id}")void deleteAppointment(int id);
}

步骤八:编写 Service 层

UserService.java
package com.hospital.service;import com.hospital.entity.User;
import com.hospital.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);}
}
DoctorService.java
package com.hospital.service;import com.hospital.entity.Doctor;
import com.hospital.mapper.DoctorMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class DoctorService {@Autowiredprivate DoctorMapper doctorMapper;public List<Doctor> getAllDoctors() {return doctorMapper.getAllDoctors();}public Doctor getDoctorById(int id) {return doctorMapper.getDoctorById(id);}public void addDoctor(Doctor doctor) {doctorMapper.addDoctor(doctor);}public void updateDoctor(Doctor doctor) {doctorMapper.updateDoctor(doctor);}public void deleteDoctor(int id) {doctorMapper.deleteDoctor(id);}
}
AppointmentService.java
package com.hospital.service;import com.hospital.entity.Appointment;
import com.hospital.mapper.AppointmentMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class AppointmentService {@Autowiredprivate AppointmentMapper appointmentMapper;public List<Appointment> getAppointmentsByUserId(int userId) {return appointmentMapper.getAppointmentsByUserId(userId);}public Appointment getAppointmentById(int id) {return appointmentMapper.getAppointmentById(id);}public void addAppointment(Appointment appointment) {appointmentMapper.addAppointment(appointment);}public void updateAppointment(Appointment appointment) {appointmentMapper.updateAppointment(appointment);}public void deleteAppointment(int id) {appointmentMapper.deleteAppointment(id);}
}

步骤九:编写 Controller 层

UserController.java
package com.hospital.controller;import com.hospital.entity.User;
import com.hospital.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:/doctors";} 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";}
}
DoctorController.java
package com.hospital.controller;import com.hospital.entity.Doctor;
import com.hospital.service.DoctorService;
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 DoctorController {@Autowiredprivate DoctorService doctorService;@GetMapping("/doctors")public String showDoctors(Model model) {List<Doctor> doctors = doctorService.getAllDoctors();model.addAttribute("doctors", doctors);return "doctors";}@GetMapping("/doctor/{id}")public String showDoctorDetails(@RequestParam("id") int id, Model model) {Doctor doctor = doctorService.getDoctorById(id);model.addAttribute("doctor", doctor);return "doctorDetails";}@GetMapping("/addDoctor")public String showAddDoctorForm() {return "addDoctor";}@PostMapping("/addDoctor")public String handleAddDoctor(Doctor doctor) {doctorService.addDoctor(doctor);return "redirect:/doctors";}@GetMapping("/editDoctor/{id}")public String showEditDoctorForm(@RequestParam("id") int id, Model model) {Doctor doctor = doctorService.getDoctorById(id);model.addAttribute("doctor", doctor);return "editDoctor";}@PostMapping("/editDoctor")public String handleEditDoctor(Doctor doctor) {doctorService.updateDoctor(doctor);return "redirect:/doctors";}@GetMapping("/deleteDoctor/{id}")public String handleDeleteDoctor(@RequestParam("id") int id) {doctorService.deleteDoctor(id);return "redirect:/doctors";}
}
AppointmentController.java
package com.hospital.controller;import com.hospital.entity.Appointment;
import com.hospital.entity.Doctor;
import com.hospital.service.AppointmentService;
import com.hospital.service.DoctorService;
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.Date;
import java.util.List;@Controller
public class AppointmentController {@Autowiredprivate AppointmentService appointmentService;@Autowiredprivate DoctorService doctorService;@GetMapping("/appointments")public String showAppointments(@RequestParam("userId") int userId, Model model) {List<Appointment> appointments = appointmentService.getAppointmentsByUserId(userId);model.addAttribute("appointments", appointments);return "appointments";}@GetMapping("/makeAppointment")public String showMakeAppointmentForm(@RequestParam("userId") int userId, Model model) {List<Doctor> doctors = doctorService.getAllDoctors();model.addAttribute("doctors", doctors);model.addAttribute("userId", userId);return "makeAppointment";}@PostMapping("/makeAppointment")public String handleMakeAppointment(@RequestParam("userId") int userId, @RequestParam("doctorId") int doctorId,@RequestParam("appointmentTime") String appointmentTime) {Appointment appointment = new Appointment();appointment.setUserId(userId);appointment.setDoctorId(doctorId);appointment.setAppointmentTime(new Date());appointment.setStatus("Pending");appointmentService.addAppointment(appointment);return "redirect:/appointments?userId=" + userId;}@GetMapping("/cancelAppointment/{id}")public String handleCancelAppointment(@RequestParam("id") int id, @RequestParam("userId") int userId) {appointmentService.deleteAppointment(id);return "redirect:/appointments?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>
doctors.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head><title>Doctors</title>
</head>
<body>
<h2>Doctors</h2>
<table><tr><th>Name</th><th>Department</th><th>Introduction</th><th>Schedule</th><th>Action</th></tr><c:forEach items="${doctors}" var="doctor"><tr><td>${doctor.name}</td><td>${doctor.department}</td><td>${doctor.introduction}</td><td>${doctor.schedule}</td><td><a href="${pageContext.request.contextPath}/doctor/${doctor.id}">View</a><a href="${pageContext.request.contextPath}/editDoctor/${doctor.id}">Edit</a><a href="${pageContext.request.contextPath}/deleteDoctor/${doctor.id}">Delete</a></td></tr></c:forEach>
</table>
<a href="${pageContext.request.contextPath}/addDoctor">Add New Doctor</a>
</body>
</html>
makeAppointment.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head><title>Make Appointment</title>
</head>
<body>
<h2>Make Appointment</h2>
<form action="${pageContext.request.contextPath}/makeAppointment" method="post"><input type="hidden" name="userId" value="${userId}">Doctor:<select name="doctorId"><c:forEach items="${doctors}" var="doctor"><option value="${doctor.id}">${doctor.name} (${doctor.department})</option></c:forEach></select><br>Appointment Time: <input type="datetime-local" name="appointmentTime"><br><input type="submit" value="Make Appointment">
</form>
</body>
</html>

步骤十一:测试与调试

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

步骤十二:部署与发布

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

相关文章:

基于 JAVASSM(Java + Spring + Spring MVC + MyBatis)框架开发一个医院挂号系统

基于 JAVASSM&#xff08;Java Spring Spring MVC MyBatis&#xff09;框架开发一个医院挂号系统是一个实用的项目。 步骤一&#xff1a;需求分析 明确系统需要实现的功能&#xff0c;比如&#xff1a; 用户注册和登录查看医生列表预约挂号查看预约记录取消预约管理员管…...

Golang | Leetcode Golang题解之第540题有序数组中的单一元素

题目&#xff1a; 题解&#xff1a; func singleNonDuplicate(nums []int) int {low, high : 0, len(nums)-1for low < high {mid : low (high-low)/2mid - mid & 1if nums[mid] nums[mid1] {low mid 2} else {high mid}}return nums[low] }...

影刀RPA实战:嵌入python,如虎添翼

1. 影刀RPA与Python的关系 影刀RPA与Python的关系可以从以下几个方面来理解&#xff1a; 技术互补&#xff1a;影刀RPA是一种自动化工具&#xff0c;它允许用户通过图形化界面创建自动化流程&#xff0c;而Python是一种编程语言&#xff0c;常用于编写自动化脚本。影刀RPA可以…...

es 数据清理delete_by_query

POST /索引名/_delete_by_query?conflictsproceed&scroll_size2000&wait_for_completionfalse&slices36 {"size": 2000, "query": {"bool": { "must": [{"terms": {"rule_id": [800007]}}]}} }slice…...

【每日 C/C++ 问题】

一、C 中类的三大特性是什么&#xff1f;请简要解释。 封装、继承、多态 封装&#xff1a;将事物的属性&#xff08;成员变量&#xff09;和行为&#xff08;成员函数&#xff09;封装在一起形成一个类。并且可以设置相应的访问权限&#xff08;私有的 受保护的 公有的&#…...

stm32学习4

学习目录 一.流水灯1.创建文件2.编写相关代码 一.流水灯 1.创建文件 将方法进行分类保存在不同的 .c 文件中&#xff0c;方便复用和寻找&#xff1b; 创建Hardware\LED文件&#xff0c;其中有led.c和led.h文件&#xff0c;用于存放有关LED灯操作的方法&#xff1b; 在User文…...

Midjourney国内直登

Midjourney确实是一个强大的AI绘画工具&#xff0c;能够根据用户输入的文本生成高质量的图像。然而&#xff0c;由于国内的网络限制&#xff0c;直接访问Midjourney可能会遇到障碍。 目前&#xff0c;已经有一些国内代理或中转平台可以帮助用户更方便地使用Midjourney&#xf…...

【双目视觉标定】——3面结构光相机标定实践(获取相机内参)~未完待续

相机标定基本原理及双目相机内参解析 相机标定是计算机视觉中的一个重要步骤&#xff0c;旨在确定相机的内部和外部参数&#xff0c;以便在图像处理中进行准确的三维重建、物体识别等任务。本文将重点讲解双目相机的内参和外参原理&#xff0c;并结合实际参数进行分析。 一、…...

Python常用脚本集锦

收集了一些常用Python脚本&#xff0c;作为平时练手使用&#xff0c;也可以作为自己的笔记&#xff0c;用到哪个功能可以自己查询一下即可。 文件和目录管理 复制文件 import shutil# 复制源文件到目标文件 shutil.copy(source.txt, destination.txt)移动文件 import shuti…...

MacBook 如何设置打开json格式文件的默认程序是vs code

首先右键选中文件&#xff0c;然后选中显示简介 然后选中打开方式 设置成vs code...

如何在 Spring Boot 中实现多数据源的事务管理?

在 Spring Boot 中实现多数据源的事务管理可以通过以下几种方式&#xff1a; 一、使用编程式事务管理 配置多个数据源 如同前面提到的&#xff0c;在 application.properties 或 application.yml 文件中配置多个数据源的连接信息&#xff0c;并创建对应的数据源 bean。 手动开启…...

SQL 常用更新操作

目录 1. 从一个查询结果中获取数据批量更新一张表 1. 从一个查询结果中获取数据批量更新一张表 更新table_a中所有id在tmp查询结果中的name值 UPDATE table_a a SET a.name tmp.name FROM (SELECT id, name FROM table_b) tmp WHERE a.id tmp.id;UPDATE table_a a JOIN (SE…...

Android camera2

一、序言 为了对阶段性的知识积累、方便以后调查问题&#xff0c;特做此文档&#xff01; 将以camera app 使用camera2 api进行分析。 (1)、打开相机 openCamera (2)、创建会话 createCaptureSession (3)、开始预览 setRepeatingRequest (4)、停止预览 stopRepeating (5)、关闭…...

nginx监控指标有哪些

Nginx 的监控指标可以帮助你了解服务器的性能、资源使用以及运行状态。下面是一些常见的 Nginx 监控指标&#xff0c;涵盖了访问、性能、资源使用等多个方面&#xff1a; 1. 访问量与请求处理 Active Connections&#xff08;活跃连接数&#xff09;&#xff1a;当前 Nginx 处…...

我谈正态分布——正态偏态

目录 pdf和cdf参数 标准正态分布期望和方差分布形态 3 σ 3\sigma 3σ原则 正态和偏态正态偏态瑞利分布偏度 (Skewness)峰度 (Kurtosis) 比较 正态分布的英文是Normal Distribution&#xff0c;normal是“正常”或“标准”的意思&#xff0c;中文翻译是正态&#xff0c;多完美的…...

如何使用uniswap v2 获取两个代币的交易对池子

在 Uniswap V2 中,获取两个代币的交易对池子(即 pair)可以通过以下步骤实现: 连接到 Uniswap V2 的合约:你需要与 Uniswap V2 的 Factory 合约进行交互,通过该合约来查找代币交易对。 获取交易对地址:Uniswap V2 Factory 合约提供了一个 getPair 函数,可以通过该函数查…...

CSS中常见的两列布局、三列布局、百分比和多行多列布局!

目录 一、两列布局 1、前言&#xff1a; 2. 两列布局的常见用法 两列布局的元素示例&#xff1a; 代码运行后如下&#xff1a; 二、三列布局 1.前言 2. 三列布局的常见用法 三列布局的元素示例&#xff1a; 代码运行后如下&#xff1a; 三、多行多列 1.前言 2&…...

GaussDB Ustore存储引擎解读

目录 一、数据库存储引擎 二、GaussDB Ustore存储引擎 总结 本文将介绍GaussDB中的Ustore存储引擎&#xff0c;包括Ustore的设计背景、特点介绍和适用业务场景等。 一、数据库存储引擎 数据库的存储引擎负责在内存和磁盘上存储、检索和管理数据&#xff0c;确保每个节点的…...

JAVA基础:数组 (习题笔记)

一&#xff0c;编码题 1&#xff0c;数组查找操作&#xff1a;定义一个长度为10 的一维字符串数组&#xff0c;在每一个元素存放一个单词&#xff1b;然后运行时从命令行输入一个单词&#xff0c;程序判断数组是否包含有这个单词&#xff0c;包含这个单词就打印出“Yes”&…...

VMWARE ESXI VMFS阵列故障 服务器数据恢复

1&#xff1a;河南用户一台DELL R740 3块2.4T硬盘组的RAID5&#xff0c;早期坏了一个盘没有及时更换&#xff0c;这次又坏了一个&#xff0c;导致整组RAID5处于数据丢失的状态&#xff0c; 2&#xff1a;该服务器装的是VMware ESXI 6.7&#xff0c;用户把3块硬盘寄过来进行数据…...

ssm+java2026年毕设体育赛事管理系统App【源码+论文】

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于赛事管理问题的研究&#xff0c;现有研究主要以大型综合性体育赛事&#xff08;如奥运会、亚运会&#xff09;的信息化管理…...

保姆级教程:用华为eNSP复现一个能跑通的企业网毕业设计(含VRRP、OSPF、防火墙策略)

华为eNSP企业网实战&#xff1a;从零构建高可用网络架构 刚接触网络工程的学生或初级工程师&#xff0c;面对企业级网络设计时常常陷入配置迷雾——为什么这里要用VRRP&#xff1f;OSPF区域划分的依据是什么&#xff1f;防火墙策略如何与NAT协同工作&#xff1f;本文将以华为eN…...

Open UI5 源代码解析之736:CardBase.js

源代码仓库: https://github.com/SAP/openui5 源代码位置:src\sap.f\src\sap\f\CardBase.js CardBase.js 深度解析:在 OpenUI5 中承上启下的卡片基座 文件定位与整体判断 CardBase.js 位于 sap.f 库下,它不是面向业务开发者直接频繁实例化的组件,而是一个被多种卡片实…...

从安防摄像头到直播:手把手教你用ZLMediaKit搭建GB28181视频监控平台

从安防摄像头到直播&#xff1a;手把手教你用ZLMediaKit搭建GB28181视频监控平台 在智能安防和物联网快速发展的今天&#xff0c;视频监控系统的网络化和智能化已成为行业标配。GB28181作为国内视频监控领域的国家标准协议&#xff0c;实现了不同厂商设备间的互联互通。而ZLMed…...

告别兼容性问题:手把手教你用canvas和base64转换TIFF图片

前端工程师必备&#xff1a;TIFF图片处理全攻略与实战解决方案 在当今数字内容爆炸式增长的时代&#xff0c;图片处理已成为前端开发中不可或缺的一环。作为专业开发者&#xff0c;我们经常需要面对各种图片格式的兼容性问题&#xff0c;其中TIFF&#xff08;Tagged Image Fil…...

IDEA插件开发:集成Nunchaku-flux-1-dev实现代码注释自动图解

IDEA插件开发&#xff1a;集成Nunchaku-flux-1-dev实现代码注释自动图解 1. 引言 作为一名Java开发者&#xff0c;你是否曾经面对过这样的困境&#xff1a;接手一个复杂的遗留系统&#xff0c;代码量庞大但注释稀少&#xff0c;逻辑关系错综复杂&#xff0c;光是理解代码执行…...

Windows右键菜单效率革命:ContextMenuManager极简操作与深度定制指南

Windows右键菜单效率革命&#xff1a;ContextMenuManager极简操作与深度定制指南 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 每天面对电脑上杂乱的右键菜单&…...

抖音无水印视频批量下载全攻略:技术解析与实战指南

抖音无水印视频批量下载全攻略&#xff1a;技术解析与实战指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support.…...

Nunchaku-flux-1-dev参数详解:CFG Scale、种子数等关键参数实战影响

Nunchaku-flux-1-dev参数详解&#xff1a;CFG Scale、种子数等关键参数实战影响 你是不是也遇到过这样的情况&#xff1a;用同一个模型&#xff0c;别人生成的图片细节满满、创意十足&#xff0c;而你生成的却总是差点意思&#xff0c;要么太放飞自我&#xff0c;要么又过于死…...

高效一键构建:DoL-Lyra整合包的智能自动化构建系统解析

高效一键构建&#xff1a;DoL-Lyra整合包的智能自动化构建系统解析 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 还在为Degrees of Lewdity游戏的美化整合包配置而烦恼吗&#xff1f;您是否曾因手…...