Java宿舍管理系统课设源码:从数据库设计到部署排错全解析
简介这是一套基于Java与数据库的学生宿舍管理系统项目源码面向高校Java课程设计、数据库实训以及期末作业参考。系统涵盖宿舍信息管理、学生入住登记、费用记录等常见模块源码包含详细注解同时附有项目使用说明、数据库配置文档和建表SQL能够帮助读者快速理解项目结构、代码逻辑与数据表关系。资源包共13个文件核心是3个Java源文件与对应class文件其余包括Eclipse工程配置.project、.classpath、prefs、依赖jar包、使用说明docx与数据库脚本txt压缩包仅2.13MB轻量且完整便于导入开发环境后直接运行和二次修改。另含多张系统运行截图可作为课程设计报告或实验文档的参考素材。目前已有6812人学习下载是Java与数据库应用开发入门的不错选择。1. 学生宿舍管理系统Java 课设源码里最值得动手复现的一块学生宿舍管理系统是Java课程设计和毕业设计里最常见的题目之一。题面看着只是“增删改查”但一旦落到“数据库存储、使用文档、代码详细注解、运行截图”这些交付要求它就把一个完整业务系统的全链路都包括了MySQL建库建表、JDBC连接、Servlet处理请求、前后端数据流转、部署运行和界面验证。你拿到的这套源码解决的正是从零做课设最麻烦的几件事——表设计不用自己拍脑袋代码内部有逐段注释跟着文档能跑起来截图能直接作为答辩的验收证据。它也是最经典的java课程设计案例源码适合三类人正在做Java课程设计的本科生、准备把管理系统改造一下当毕设的初级开发者以及想快速找一个完整业务闭环来练手三层架构的新人。这篇文章就按我跑通这类项目的顺序来写先定选型和数据库再读源码找核心逻辑然后照文档和截图排错最后讲讲怎么让系统比原版多走一步。2. 先把技术选型和数据库存储定死后面才不翻车2.1 两条主流技术路线怎么选拿到标题带“Java项目源码”字样的宿舍管理系统第一件事不是开IDE而是确认技术栈。常见做法是两条路线老牌的 JSP Servlet JDBC MySQL以及更接近企业开发的 Spring Boot MyBatis Plus。我用一张表把它们摊开对比。对比项JSP Servlet JDBCSpring Boot MyBatis Plus运行环境Tomcat MySQLJDK Maven MySQL源码直观度高一个Servlet就是一条请求链路中依赖注入和Mapper把调用链拆散答辩讲解难度低过滤器、JDBC、会话都能现场说高面试常问的自动配置和ORM映射需要额外准备依赖体积只有MySQL驱动和Servlet API十几个Starter初学者常被版本兼容坑附带文档的匹配度高使用文档一般按“部署到Tomcat”写中还要配Maven镜像和打包插件我一般会优先判断这套源码配套文档的部署语气。如果你的主要诉求是“课程设计、要能讲清原理、少被环境折腾”JSP Servlet 是稳妥选择如果标题里出现 spring boot、mybatis 这类词那就顺着Spring生态走。本篇文章后面按 JSP Servlet 这条线展开因为它的代码注解可以写得更细运行截图也更接近课设交付标准。提示如果题面里写了“数据库存储”而不是“Spring Boot”说明作者的重点在SQL文件和JDBC层而不是框架配置。拿到源码先找db.properties和*.sql文件基本就能判断技术路线。2.2 数据库存储的第一张图数据模型宿舍管理系统的核心表不需要设计得多华丽但叠在一起要能讲成一个闭环故事管理员登录维护学生和宿舍信息把学生分配进空床位学生或管理员发起报修最后按宿舍楼统计入住率。常见核心表如下表名关键字段作用t_userid, username, password_md5, role后台登录账号区分管理员与宿管t_studentid, student_no, name, gender, phone, dorm_id, bed_no学生基础信息宿舍分配后写入房间和床号t_dormid, building_no, room_no, capacity, used_count, leader宿舍房间信息capacity是容量used_count是当前已住人数t_assign_logid, student_id, dorm_id, bed_no, operate_time分配记录表每次入住和调宿都留痕t_repairid, dorm_id, description, reporter, status, create_time报修工单status控制待处理/已处理这里要重点看t_dorm.used_count。这个字段是冗余设计因为每次分配都去count(*)也行但列表页要显示“空床位余量”时直接读一列比聚合查询快得多。代价是数据一致性要靠程序保证分配学生成功后必须同时把 used_count 加 1。很多翻车现场就是这里的更新被漏掉导致界面显示有空床实际导入数据却冲突。2.3 建表 SQL 与初始化数据一处都不能省数据库存储这套方案的底气全在 SQL 文件里。下面的建表语句我按 MySQL 8 的语法写重点标注字符集和字段注释。字符集不设置成 utf8mb4后面插入生僻字或者 emoji 会直接报错。CREATE DATABASE IF NOT EXISTS dorm_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE dorm_db; DROP TABLE IF EXISTS t_user; CREATE TABLE t_user ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL UNIQUE, password_md5 VARCHAR(64) NOT NULL, real_name VARCHAR(50), role VARCHAR(10) DEFAULT ADMIN ) ENGINEInnoDB COMMENT 登录用户表; DROP TABLE IF EXISTS t_dorm; CREATE TABLE t_dorm ( id INT PRIMARY KEY AUTO_INCREMENT, building_no VARCHAR(10) NOT NULL, room_no VARCHAR(10) NOT NULL, capacity INT NOT NULL DEFAULT 6, used_count INT NOT NULL DEFAULT 0, leader VARCHAR(50), UNIQUE KEY uk_dorm (building_no, room_no) ) ENGINEInnoDB COMMENT 宿舍表; DROP TABLE IF EXISTS t_student; CREATE TABLE t_student ( id INT PRIMARY KEY AUTO_INCREMENT, student_no VARCHAR(20) NOT NULL UNIQUE, name VARCHAR(50) NOT NULL, gender VARCHAR(4), phone VARCHAR(11), dorm_id INT, bed_no VARCHAR(5), create_time DATETIME DEFAULT CURRENT_TIMESTAMP, KEY idx_dorm (dorm_id) ) ENGINEInnoDB COMMENT 学生表; INSERT INTO t_user (username, password_md5, real_name, role) VALUES (admin, E10ADC3949BA59ABBE56E057F20F883E, 系统管理员, ADMIN);初始化账号的密码建议直接用 MD5 摘要存储这是课设答辩里最容易被追问的点。上面这行E10ADC3949BA59ABBE56E057F20F883E对应明文123456文档里要写清楚默认账号否则用户对着登录页无从下手。字段注释和索引也要养成习惯student_no加唯一索引业务上不允许两个学号相同的“幽灵学生”出现。注意如果你从这套 JSP Servlet 方案切到 Spring Boot MyBatis Plus建表方式会变成“根据 java 实体类生成创建表的 sql 语句”这种玩法。那是另一种工作流适合后端代码已经写好的场景而课程设计手里已经有.sql文件时老老实实先导入数据库省得被自动建表的字段类型差异坑一把。3. 项目源码怎么读目录结构、详细注解与核心代码3.1 先按目录“看图识源码”代码里到处是中文注释的项目反而容易被信息淹没。我的做法是先看包结构把导航建立起来再逐层往里读。一个规范的 JSP Servlet 项目源码目录一般是这样的包/目录职责读代码的优先级src/util/JDBC 工具类、MD5 工具、分页工具第一优先是全局依赖src/entity/实体类对应数据库表对照着 SQL 文件看字段名src/dao/数据访问层写 JDBC 和 SQL重点看是否处理了空结果src/service/业务逻辑层事务控制大多在这层重点看分配宿舍和退宿方法src/servlet/接收请求、调Service、跳转JSP看每个Servlet对应哪个页面WebRoot/JSP、CSS、JS、运行截图验证前端页面与后端字段是否对齐“代码详细注解”一般体现在三个位置类头注释说明这个类做什么方法头注释说明入参出参关键业务代码行内注释说明为什么这么写。你拿到源码后先抽查一个类如果三层注释都齐那这套代码的阅读体验不会差如果只有零散行内注释读的时候就要靠调试补认知。3.2 数据库连接工具类与配置文件数据库连接是整套系统的命门。配置文件和工具类通常长这样# db.properties jdbc.drivercom.mysql.cj.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/dorm_db?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai jdbc.usernameroot jdbc.password123456package util; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; /** * JDBC工具类负责加载驱动、读取配置、提供连接 */ public class JdbcUtils { private static String url; private static String username; private static String password; static { try (InputStream in JdbcUtils.class.getClassLoader() .getResourceAsStream(db.properties)) { Properties props new Properties(); props.load(in); Class.forName(props.getProperty(jdbc.driver)); url props.getProperty(jdbc.url); username props.getProperty(jdbc.username); password props.getProperty(jdbc.password); } catch (Exception e) { throw new ExceptionInInitializerError(数据库配置加载失败); } } /** * 每次调用都新建连接 * 课程设计场景够用生产环境需替换为连接池 */ public static Connection getConnection() throws Exception { return DriverManager.getConnection(url, username, password); } /** * 关闭资源注意关闭顺序ResultSet先关 */ public static void close(AutoCloseable... resources) { for (AutoCloseable r : resources) { if (r ! null) { try { r.close(); } catch (Exception ignored) { } } } } }这段代码的逻辑说明要讲清楚两点。第一Class.forName在 MySQL 8 驱动下可以省略但留着能提醒自己驱动加载发生在连接创建之前serverTimezoneAsia/Shanghai不加的话高版本 MySQL 驱动会报时区错误。第二close(AutoCloseable...)用可变参数统一关资源是减少重复代码的常见技巧调用的地方写成JdbcUtils.close(rs, stmt, conn)即可。这套写法把“数据库存储”相关的连接管理收敛到一个类里排查连不上库时只看两个文件db.properties和JdbcUtils。3.3 登录与权限校验从 Filter 到业务逻辑登录功能是每个管理系统的门面。源码里常见的设计是LoginServlet只做参数接收和页面跳转密码校验放到Service层全局权限拦截交给Filter。这种分层与其说是为了“优雅”不如说是为了答辩时被问到“怎么防止未登录访问页面”时你能直接指着一个过滤器说就是这里。package filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; /** * 登录过滤器拦截所有页面请求未登录一律回到登录页 */ WebFilter(/*) public class LoginFilter implements Filter { Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request (HttpServletRequest) req; HttpServletResponse response (HttpServletResponse) resp; // 放行登录页、登录接口和静态资源 String uri request.getRequestURI(); if (uri.endsWith(login.jsp) || uri.endsWith(login) || uri.contains(/css/) || uri.contains(/js/) || uri.contains(/images/)) { chain.doFilter(req, resp); return; } HttpSession session request.getSession(false); Object loginUser session null ? null : session.getAttribute(loginUser); if (loginUser null) { response.sendRedirect(request.getContextPath() /login.jsp); return; } chain.doFilter(req, resp); } }注意WebFilter(/*)如果放行名单没写全框架的 CSS 和图片会被拦掉界面裸奔。这就是很多“运行截图好看、自己跑起来变难看”的原因之一。这段代码的坑集中在两处。第一request.getSession(false)不会强制创建新会话未登录用户访问时 session 为 null能直接跳到登录页如果写成getSession(true)则会为每个爬虫或攻击请求创建无用的会话。第二放行名单不要用“包含”来匹配接口名比如包含login会把logout也放行正确姿势是精确到uri.endsWith(login)与/logout单独拦截。3.4 宿舍分配的核心逻辑别让最后两个学生挤进同一张床宿舍分配是整套系统的业务核心也是“代码详细注解”含金量最高的区域。业务规则一句话同一个房间不能超住分配成功必须同时写学生表、分配记录表、宿舍余量三个地方。package service; import util.JdbcUtils; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; /** * 宿舍分配服务 * 核心思路一个事务里完成“查余量-写记录-更新宿舍人数” */ public class DormAssignService { /** * 分配宿舍 * param studentId 学生ID * param dormId 宿舍ID * param bedNo 床号 * throws RuntimeException 宿舍已满则该异常抛出事务回滚 */ public void assign(int studentId, int dormId, String bedNo) throws Exception { Connection conn null; try { conn JdbcUtils.getConnection(); conn.setAutoCommit(false); // 关键校验查宿舍当前已住人数防止并发超住 String checkSql SELECT capacity, used_count FROM t_dorm WHERE id? FOR UPDATE; PreparedStatement checkPs conn.prepareStatement(checkSql); checkPs.setInt(1, dormId); ResultSet rs checkPs.executeQuery(); if (rs.next()) { int capacity rs.getInt(capacity); int used rs.getInt(used_count); if (used capacity) { throw new RuntimeException(该宿舍已满无法分配); } } rs.close(); checkPs.close(); // 写入分配记录 String logSql INSERT INTO t_assign_log(student_id, dorm_id, bed_no) VALUES(?,?,?); PreparedStatement logPs conn.prepareStatement(logSql); logPs.setInt(1, studentId); logPs.setInt(2, dormId); logPs.setString(3, bedNo); logPs.executeUpdate(); logPs.close(); // 更新学生表与宿舍人数 String updateStudent UPDATE t_student SET dorm_id?, bed_no? WHERE id?; PreparedStatement stuPs conn.prepareStatement(updateStudent); stuPs.setInt(1, dormId); stuPs.setString(2, bedNo); stuPs.setInt(3, studentId); stuPs.executeUpdate(); stuPs.close(); String updateDorm UPDATE t_dorm SET used_countused_count1 WHERE id?; PreparedStatement dormPs conn.prepareStatement(updateDorm); dormPs.setInt(1, dormId); dormPs.executeUpdate(); dormPs.close(); conn.commit(); } catch (Exception e) { if (conn ! null) { conn.rollback(); } throw e; } finally { if (conn ! null) { conn.setAutoCommit(true); conn.close(); } } } }这段代码有两个可讲透的参数细节。一是SELECT ... FOR UPDATE它把宿舍这一行数据锁住避免两个请求同时读到余量 1然后同时分配成功变成超住。课程设计里只要说出来这句 SQL 的作用评委基本不会再追下去。二是事务边界正常情况下setAutoCommit(true)要放回 finally 里否则连接归还后自动提交状态被破坏池里其他线程会连出“事务未提交”的玄学错误。4. 使用文档、运行截图与排错跑通项目的最后一公里4.1 使用文档应该覆盖什么怎么验证你拿到的完整标题里有“使用文档”说明交付物不只是代码还包含一份指引。一份合格的宿舍管理系统使用文档至少要覆盖五个部分环境要求JDK 和 Tomcat 版本范围、数据库初始化步骤、部署到 Tomcat 的操作、默认账号说明、各功能模块的操作路径。拿到文档后我建议按这个顺序做一次性验证先开 MySQL 导入 SQL再改db.properties然后启动 Tomcat最后按文档里的账号密码登录。如果文档说“导入 sql 文件”你实际操作时发现还要手动建库那说明文档写得不完整但这种情况很常见自己补一步CREATE DATABASE即可。提示先看使用文档里的默认账号再用那个账号登录。不要一上来就注册新账号很多宿舍管理系统根本没有注册入口只有一个预置的管理员。4.2 运行截图怎么帮你做快速回归验证运行截图不是给你“看的”是给你“对的”。源码里附的截图一般是作者在自己机器上跑出来的环境变量、数据库密码、Tomcat 端口都可能和你不一样。正确的用法是做一张回归清单截图模块页面检查点对应后端接口登录页用户名密码框、错误提示展示位置LoginServlet学生管理列表分页条、学号唯一、删除有确认StudentListServlet宿舍分配宿舍列表显示已住/容量DormAssignService报修管理状态字段能切换“待处理/已处理”RepairUpdateServlet统计页按楼栋显示入住率柱状图StatisticServlet验证的方法很简单照着截图里的数据检查自己库里有没有对应记录。如果截图里宿舍 3 号楼 101 显示 4/6 人而你的列表里这间宿舍是空的说明初始化数据没导入完整。回归验证跑通后你再按自己的数据重新截一遍图答辩 PPT 里就全是真实环境证据不需要对着别人的截图解释。4.3 血泪经验5 个让你翻车的坑第一导入 SQL 文件报错提示Unknown collation: utf8mb4_0900_ai_ci。原因是 MySQL 5.7 不支持 MySQL 8 默认的排序规则。解决方法是把 SQL 文件里的utf8mb4_0900_ai_ci全部替换成utf8mb4_general_ci或者直接在我前面 2.3 节的建表语句基础上改。第二Tomcat 启动正常但访问页面报 404。原因往往是访问 URL 没带项目上下文比如部署包名是dorm_system访问路径写成http://localhost:8080/login.jsp而不是http://localhost:8080/dorm_system/login.jsp。解决方式是确认部署后的 Web 应用上下文路径在 IntelliJ IDEA 的Run Configuration里看Deployment标签下的Application context。第三页面能打开但登录时提示Access denied for user rootlocalhost。这是db.properties里的密码和 MySQL 实际密码不一致造成的和代码无关。如果 MySQL 8 且密码没问题就检查驱动 jar 包版本com.mysql.jdbc.Driver在 MySQL 8 下需要换成com.mysql.cj.jdbc.Driver。第四中文乱码插入数据库后显示???。原因是三段编码不一致JSP 页面charsetUTF-8、数据库表utf8mb4、db.properties连接串带了characterEncodingutf8。任何一段漏掉都会乱码排查时从数据库端反向检查。第五登录后页面样式全丢HTML 结构在但 CSS 不生效。这个坑在 3.3 节提过通常是过滤器把/css/路径拦了或者 JSP 里引用的 CSS 路径写成了绝对路径。解决方式是先把过滤器放行名单补上静态资源后缀再检查 JSP 里的link href${pageContext.request.contextPath}/css/style.css是否带上下文路径。5. 从“能跑”到“能答辩”一个可抄的验证清单运行成功的项目只能证明你会部署答辩时想要更稳需要把“能跑”变成“我理解且我改过”。我习惯用一个三分法验证清单验证动作具体操作预期结果重现截图按当前项目真实数据重新登录、分配、报修截 5 张图每张图都能对应到一段 Servlet 或 Service 代码修改参数把宿舍容量从 6 改成 4用第 5 个学生做分配系统提示“该宿舍已满无法分配”截图留证追读注解从 JdbcUtils 到 DormAssignService 逐行读一遍能说出每张表在代码里被 update 的时机第一个动作解决“运行截图不是你的”的问题第二个动作直接验证事务逻辑是否真的生效——如果修改容量后仍能分配进去说明事务里有并发或校验漏洞这是比“跑通”更有价值的发现。第三个动作是给“代码详细注解”这条交付要求做背书你把核心类的方法注释用自己的话复述一遍比背八股文回答问题自然得多。做完这三步这套宿舍管理系统就不再是下载来的黑匣子而是一份你能指出哪里可以改的代码资产。我当年拿到类似的课设源码只做了“重截截图 改宿舍容量”两件事答辩现场被问“如果 6 人间改 4 人间会怎样”我直接说出事务回滚流程评委就没再深挖。把验证清单走完你投入的每一分钟都落在自己能讲清的逻辑上。希望这个思路能帮到你。本文还有配套的精品资源点击获取

相关新闻

MySQL Workbench图形化操作指南:从建库到外键约束的设置与避坑

MySQL Workbench图形化操作指南:从建库到外键约束的设置与避坑

简介:MySQL Workbench使用教程是一份面向数据库管理员、开发者和初学者的实操型文档,围绕可视化数据库设计与管理展开,可解决从环境熟悉到库表维护过程中的常见问题。文档先介绍Workbench社区版与商业版的区别,再按操作路径演示SC…

2026/10/9 10:32:00 阅读更多 →
NSL-KDD入侵检测源码解析:从数据清洗到PCA降维与GUI演示

NSL-KDD入侵检测源码解析:从数据清洗到PCA降维与GUI演示

简介:基于NSL-KDD数据集的网络入侵检测完整项目,面向计算机专业毕业设计、课程设计及期末大作业实战需求,由导师指导并获98分高分评价,提供可复现的Python源码、运行说明与配套数据集。包内共27个文件,包含10个csv数据…

2026/10/9 10:32:00 阅读更多 →
新型智慧城市建设方案怎么编:从总体架构到合同化落地

新型智慧城市建设方案怎么编:从总体架构到合同化落地

简介:面向智慧城市方案规划与政务信息化项目售前、交付人员的87页PPT,以新型智慧城市建设为主线,覆盖背景分析、现状需求、总体设计、建设内容、建设效果与预算等完整章节,聚焦智慧城市运营中心(IOC)、城市…

2026/10/9 10:32:00 阅读更多 →

最新新闻

MiniMax M Plan全模态额度统一与Claude Code、Cursor免密接入实战

MiniMax M Plan全模态额度统一与Claude Code、Cursor免密接入实战

1. 从 Token Plan 到 M Plan:额度体系到底变了什么MiniMax 把原来的 Token Plan 直接送进历史,换成了全新的 M Plan,这件事在开发者圈子里炸开锅的原因其实很简单——过去那种按 token 分档、按模态拆开计费的模式,用起来太碎了。…

2026/10/9 11:06:55 阅读更多 →
企业级AI网关实战:多模型统一接入与治理

企业级AI网关实战:多模型统一接入与治理

1. 多模型接入的乱局:为什么统一管理不是可选项 我最早接触多模型接入是在两年前,当时团队同时用着三家厂商的模型服务:一家做通用对话,一家做代码补全,还有一家专门跑长文本摘要。每个模型都有自己的控制台、自己的密…

2026/10/9 11:06:55 阅读更多 →
AI-Native组织架构设计:Agent、MCP与模型API网关落地实践

AI-Native组织架构设计:Agent、MCP与模型API网关落地实践

1. 从工具堆砌到组织重构:AI-Native 到底在说什么这两年“AI-Native”这个词被用得很泛,很多团队嘴上说着要做 AI-Native 组织,实际干的事情无非是给每个人开个模型账号、在流程里塞一个聊天窗口,然后对外宣称“我们已经全面拥抱 …

2026/10/9 11:06:55 阅读更多 →
数据库课后答案怎么用?三遍刷题法+SQLite 验证避坑指南

数据库课后答案怎么用?三遍刷题法+SQLite 验证避坑指南

简介:《数据库系统概论(第五版)》(王珊版)课后习题答案文档,专门面向学习数据库原理的本科生、考研复习者及自学者,可对照教材逐章检验理解程度。资源为单个doc文档,大小约588KB&…

2026/10/9 11:06:55 阅读更多 →
台球室预约小程序开发实战:从业务拆解到上线运营指南

台球室预约小程序开发实战:从业务拆解到上线运营指南

春节前一位开台球室的朋友找我,说要做一个台球室预约小程序。他那边35张球桌,高峰期电话不断,手写登记本翻得稀烂,散客到店经常要等一两个小时。我花了两周把整套台球室预约平台搭起来:小程序端给顾客选球台、选时段、…

2026/10/9 11:06:54 阅读更多 →
Agent-Reach:让智能体真正触达外部世界的连接方案

Agent-Reach:让智能体真正触达外部世界的连接方案

这半年我一直在折腾一件事:让AI智能体真正“连出去”。市面上不缺会写诗、会总结、会聊天的Agent,可一旦要让Agent去查报表、发通知、调外部系统,十有八九会卡住——不是模型不够聪明,而是它“够不到”。Agent-Reach这个项目&…

2026/10/9 11:05:53 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →