尧图精选

Spring Boot企业人力资源系统毕设:从设计到答辩全攻略

🕒 发布时间:2026/10/1 4:12:59 📁 来源:尧图网络
每年毕业季都能看到一批人选这个题目springboot企业人力资源系统论文。这个题看起来简单实际做起来坑不少。很多同学以为把CRUD写完就是系统做完结果论文写出来像用户手册答辩被问到数据库设计就卡壳。我当年也踩过类似的坑带过几届毕业生做这类选题今天就把整套思路、代码结构、论文写作路径一次性讲清楚。这篇文章不是给你贴一堆概念而是告诉你从开题到答辩每一步到底怎么落地。适合正在做Spring Boot毕设、准备写人力资源方向论文、或者想系统梳理Java Web开发流程的人参考。不管你是打算自己写代码还是准备找人辅导先把底层逻辑搞清楚比什么都重要。人力资源系统这个业务域特别适合做Spring Boot项目它有明确的用户角色、有完整的业务流程、有足够多的数据表关系还能顺带把权限、缓存、文件存储、报表这些常用技术点全串起来。题目本身没有脱离实际也不是那种假大空的虚构场景企业里真有人力资源部真需要管员工信息、考勤、请假、薪资所以论文写起来有据可依答辩的时候也能讲清楚业务背景。1. 先把这个题目吃透企业人力资源系统的真实需求1.1 标题拆解论文题目背后的四个关键词很多人拿到“springboot企业人力资源系统论文”这个题目第一反应是去搜源码第二反应是去抄文档但很少人认真拆过题目。这四个词每个都有讲究。先说“企业”它限定了业务场景和系统规模。企业里的人事管理不是只做一个员工花名册而是要把“部门—岗位—员工—考勤—薪酬—招聘—培训”这条线串起来。企业环境的权限要求也比校园系统高管理者、HR、普通员工看到的数据范围完全不同。再说“人力资源系统”这是业务域。六大模块常被提起人力资源规划、招聘与配置、培训与开发、绩效管理、薪酬福利管理、员工关系管理。一个毕设不可能全做通常选员工管理、考勤请假、薪资统计、系统管理这四块作为核心。为什么这样选因为这几块数据之间关联性最强能体现数据库设计和业务逻辑又不会让工作量失控。然后是“Spring Boot”这是技术栈关键词。Spring Boot不是用来解决业务问题的它是用来解决“开发效率”和“集成成本”的。它利用自动装配让配置变少通过Starter把常用依赖打包让一个Web服务从零到能跑只需要几分钟。论文里如果只写“Spring Boot很强大”就太虚了要写清楚它如何简化传统SSM项目的配置、如何内嵌Tomcat、如何通过自动装配加载DataSource和RedisTemplate。最后是“论文”很多人忽略了这个词。论文不是项目说明书它需要有“问题—分析—设计—实现—验证”的逻辑闭环。系统做完了只是第一步你得让评委从文字上就能看懂你为什么会选这些技术、为什么这么建表、为什么这么设计权限。换句话说代码展示的是“怎么做”论文重点要回答“为什么这么做”。1.2 功能边界怎么定别上来就画大饼选这个题目的同学最容易犯的错是功能列表越开越长。今天想加个培训模块明天想加个绩效打分后天又想接一个招聘门户最后代码写了一堆每个模块都粗糙论文每章都写不深。我的建议是先把功能收敛到最小的完整闭环。一个合格的企业人力资源系统最少要有这几个部分用户与权限管理登录、角色区分、菜单权限、按钮权限。组织架构管理部门信息维护、岗位信息维护、部门树展示。员工档案管理员工信息增删改查、头像上传、批量导入导出。考勤请假管理上下班打卡、请假申请、审批流转、考勤统计。薪资管理薪资项目设置、月度薪资计算、工资条查询。为什么这个边界合适因为它既能覆盖人事管理的核心业务又能在技术层面把你要展示的Spring Boot能力都用上。权限管理用到JWT和拦截器组织架构用到树形数据员工档案用到MinIO文件存储考勤请假用到状态机和事务薪资统计用到多表聚合查询。你不需要在每个功能上都堆新框架但每个功能都能体现一个技术点这就够了。需求分析写得好不好直接决定论文第三章的质量。建议你把用户角色分成三类系统管理员、HR专员、普通员工。然后画用例图系统管理员管用户和权限HR专员管员工、考勤和薪资普通员工只能查看个人信息、发起请假和查看工资条。这个边界一出来数据权限方案也就跟着清晰了。2. 技术选型Spring Boot作为骨架其他组件怎么配2.1 后端框架Spring Boot MyBatis还是JPA这个问题几乎每个答辩老师都会问所以你得先想明白。Spring Boot本身只是个框架骨架真正访问数据库还得靠持久层。人力资源系统里有大量统计类SQL比如按部门汇总考勤天数、按月计算应发工资这些查询条件复杂、动辄关联四五张表用JPA自动生成SQL反而难控制。我自己更推荐Spring Boot MyBatis的组合。MyBatis可以把SQL写在XML里排查问题方便调优也直观。尤其是薪酬统计这种需要临时联表计算的报表写一条原生SQL比拼JPQL或者QueryDSL舒服得多。MyBatis也支持PageHelper分页配合前端表格组件非常顺手。如果你们学校老师强制要求使用JPA也不是不行但你要额外处理延迟加载和N1查询问题。人力资源列表页每次打开都查十几条关联数据一旦没写好fetch策略性能会很难看。选MyBatis还有一个很实际的原因网上关于Spring Boot MyBatis的代码和视频资料最多遇到问题搜起来省时间。Spring Boot框架介绍部分可以简单提两个底层机制。第一个是自动装配原理Spring Boot启动时通过SpringBootApplication开启EnableAutoConfiguration再通过spring.factories或AutoConfiguration.imports加载一堆自动配置类每个配置类上用ConditionalOnClass、ConditionalOnMissingBean来控制生效条件。第二个是内嵌Web容器不需要额外部署TomcatSpring Boot通过spring-boot-starter-web自动把Tomcat内嵌进来跟着Main方法启动。这些内容写清楚比空喊一句“Spring Boot简化了开发”要有说服力得多。2.2 前端与中间件Vue前后端分离、Redis、MinIO、MySQL现在的毕设如果还做服务端渲染的Thymeleaf不是不行但整体会显得偏老。Spring Boot很适合做纯后端REST API前端独立用Vue 3 Element Plus搭后台管理界面。前后端分离的好处有两层。第一层是开发分工清晰你可以在idea里同时开着Spring Boot项目和Vue项目后端只负责返回JSON前端通过Axios调用接口。第二层是答辩演示方便系统部署成本低后端打包成jar前端打包成dist后用Nginx托管一台笔记本就能演示完整流程。中间件层面人力资源系统通常要接三个东西。第一个是Redis用来缓存验证码、登录Token、部门树、性别学历这类字典数据。比如部门树每次页面加载都查数据库压力大而且没必要把树形数据序列化放进Redis后再设置一个合理的过期时间性能提升非常明显。第二个是MinIO用于文件存储。员工头像、附件简历、批量导入的Excel模板都可以传到MinIO。MinIO加入Spring Boot很简单引入minio的Java SDK在配置类里注册一个MinioClient实例配置Endpoint、AccessKey、SecretKey、Bucket然后写一个FileService封装上传和下载方法。不要把文件存到数据库的BLOB字段也不要直接塞到项目resources目录里前者拖垮数据库后者打包部署后会丢文件。第三个是MySQL用InnoDB引擎字符集用utf8mb4。如果学校要求做信创适配可以换成金仓V8Spring Boot的DataSource配置改成对应驱动就行MyBatis XML里少用MySQL特有的语法比如LIMIT尽量用PageHelper处理避免换库后SQL报错。核心代码不用改太多。3. 从0到1搭建项目核心流程与数据库设计3.1 项目初始化与分层架构创建Spring Boot项目我用的是IDEA。打开IDEA选择Spring Initializr指定JDK版本、Maven项目、包名然后勾选依赖。新手容易在IDEA 2026这类新版本里找不到配置Spring Boot服务启动端口的地方其实很简单修改src/main/resources/application.yml里的server.port属性或者直接在Run Configuration里加上-Dserver.port8081的VM参数。Maven项目构建方法也要提前熟练。刚创建的Spring Boot项目只有一个pom.xml和启动类依赖都靠Maven拉取。在pom.xml里添加spring-boot-starter-web、mybatis-spring-boot-starter、mysql-connector-j、spring-boot-starter-data-redis、lombok、springdoc-openapi这些依赖然后刷新Maven项目会自动下载。如果下载慢切换阿里云镜像源在settings.xml里把mirror地址改掉能省很多时间。包结构建议这样分controller接收HTTP请求返回统一Result对象service业务逻辑事务控制在service层mapperMyBatis接口配合XMLentity数据库表对应的实体dto / vo请求参数和返回视图对象config配置类如RedisConfig、MinioConfig、WebMvcConfigcommon统一返回结果、全局异常处理、工具类这里有个容易被忽略的细节千万别把entity直接返回给前端。数据库字段可能暴露敏感信息比如密码、手机号。更合理的做法是定义VO类比如员工信息返回时只返回需要的字段。Spring Boot里可以用BeanUtils.copyProperties做属性拷贝也可以直接用MapStruct但毕设不必引入太复杂的东西简单拷贝就够。3.2 数据库设计员工、部门、考勤、薪资表怎么做数据库设计是论文里最有含金量的部分也是答辩必问环节。先把核心表列出来sys_user、sys_role、sys_menu、sys_user_role、sys_role_menu、dept、employee、attendance、leave、salary。sys_user存登录账号不要和employee直接合并。虽然一对一关系但分开更灵活未来如果员工离职但账号要保留审计记录就不会互相影响。sys_role和sys_menu做RBAC权限模型user绑定rolerole绑定menu前端根据返回的菜单权限动态渲染按钮。dept表需要支持树形结构用parent_id指向父部门。查询部门树时最简单的做法是一次性查出全部分门在Java内存里按parent_id组装成树。部门表加一个ancestors字段存祖先链比如“1,3,7”方便做数据权限过滤不然你很难判断某个员工属于哪个顶层部门。employee表是系统主表字段很多。姓名、性别、出生日期、身份证号、手机号、邮箱、入职日期、部门id、岗位id、学历、状态。身份证号需要加密存储用AES或者国密SM4都可以论文里写明你的加密方案。入职日期设置索引因为后面薪资统计经常按月份筛选。状态字段用tinyint1在职0离职不要直接删数据。这是逻辑删除的核心。考勤表attendance记录每天打卡情况employee_id、work_date、check_in_time、check_out_time、status。打卡状态有正常、迟到、早退、缺卡。请假表leave包含请假类型、开始时间、结束时间、请假事由、审批状态。审批状态用0待审批、1通过、2驳回这就是最简单的状态机。salary表按月记录每个员工的应发工资和实发工资基本工资、岗位工资、绩效、扣款、实发工资。金额字段一律用decimal(10,2)避免浮点精度问题。4. 核心模块实现让你能写进论文的功能细节4.1 登录认证与权限控制JWT加拦截器就够了人力资源系统的权限控制不需要上特别重的安全框架。Spring Security当然可以但对毕设来说学习曲线陡配置多答辩时反而容易说不清。我更推荐用JWT 拦截器实现轻量级认证。流程是这样用户输入账号密码校验成功后生成一个JWT字符串里面放userId和用户名设置过期时间比如24小时。前端把Token存在localStorage里每次请求在Header里带上Authorization: Bearer xxx。后端写一个HandlerInterceptor在preHandle方法里解析Token如果解析失败直接返回401如果成功就把当前用户信息放到ThreadLocal里后续代码随时可以取到当前登录人。角色和权限怎么控制登录时把用户的角色标识放进JWT的claims里。写一个自定义注解RequiresPermission(hr:employee:add)拦截器里判断当前用户是否有这个权限标识没有就返回403。这个实现不难却能在论文里展示你对权限模型的理解。密码存储别用MD5虽然MD5快但不安全至少用BCrypt。Spring Security的BCryptPasswordEncoder可以单独拿来用不需要引入整套安全框架。密码加盐后每次加密结果都不同即使两个用户密码相同数据库中存的哈希也不同。论文中要写清楚为什么不用明文密码。另外Spring Boot默认使用CGLIB代理这个可以顺带提一下。当你写Transactional或者AOP切面时Spring Boot 2.x之后的默认代理方式是CGLIB因为它不需要接口直接对类生成子类代理。这个知识点面试也常问论文里可以放到技术介绍部分说明你对Spring AOP底层机制有了解。4.2 员工管理文件上传与MinIO接入实战员工管理模块是论文里最直观的功能。列表查询、条件筛选、新增编辑、删除、导出Excel这些页面和数据逻辑都很常规但要做出亮点建议在头像上传和批量导入上多下功夫。MinIO接入Spring Boot时先要搞清楚几个概念Endpoint是MinIO服务的地址AccessKey和SecretKey是访问凭证Bucket相当于存储空间。在配置类里写一个MinioClient的Bean指定连接参数。上传文件时用MultipartFile接收文件然后把InputStream放到bucket里返回一个带过期时间的文件URL。需要注意MinIO的URL默认是http://ip:9000/bucketname/filename前端直接访问没问题但如果你用了Nginx代理端口Endpoint要改成Nginx的地址不然图片会加载不出来。头像上传之后还有个细节前端上传前要做好文件类型和大小校验。只允许jpg、png大小控制在2MB以内。后端不能只依赖前端校验必须重新判断文件扩展名和Content-Type防止有人绕过前端直接传可执行文件。安全问题不是小题大做答辩老师往往喜欢问“文件上传漏洞怎么防”有了这一层你就能答上来。批量导入Excel用什么工具我建议用EasyExcel而不是Apache POI。EasyExcel对内存占用控制得好API也简单。读取Excel每一行构造Employee对象逐条校验身份证号格式、手机号格式、入职日期是否为空。校验失败的记录收集起来生成一个错误信息列表返回给前端用户可以下载错误原因这个功能在企业里很实用写在论文里也显得系统完整。4.3 考勤与请假状态流转和事务控制考勤和请假是人力资源系统里业务逻辑最重的两个模块。打卡这件事看似简单但你要处理重复打卡、补卡、外勤打卡。请假审批则需要从员工发起到直属主管审批再到HR归档整个流程是典型的“状态流”。我做的方案是考勤表和打卡记录表分开。打卡记录表保存每一次打卡的原始数据包含设备来源、定位信息、打卡时间。考勤表保存每个员工每天最终的结果。这样设计的好处是如果考勤算错了可以回溯到原始打卡记录查清楚是漏打卡还是系统计算错。每晚通过定时任务对当天的打卡记录做聚合更新考勤表状态。定时任务用Spring Boot自带的Scheduled就够了。在配置类上增加EnableScheduling然后在一个考勤任务类里写方法标注Scheduled(cron 0 30 1 * * ?)意思是每天凌晨1点30分执行前一天考勤汇总。这个功能一定要写因为它是区分普通CRUD系统和真实业务系统的标志。请假模块的状态流转要注意事务。审批从“待审批”变为“通过”时不仅要把leave表的status更新还要在考勤表里插入或者修改请假日期对应的记录状态。这两个操作必须放在同一个事务里用Transactional注解。如果中途发生异常事务回滚不会出现“请假审批已通过但考勤还是缺卡”的数据不一致。事务控制是Spring Boot面试题里的高频考点答辩时如果老师问你不仅要回答Transactional的作用还要说出它的默认回滚条件只有RuntimeException和Error会触发回滚检查异常默认不回滚。所以在service层里遇到业务校验失败最好抛RuntimeException的子类而不是返回一个失败Result。4.4 薪酬统计与报表MyBatis多表查询与Excel导出薪酬模块最能体现一个同学对SQL的掌握程度。薪酬没有太多花哨页面核心就是算工资和看统计。每个月HR需要根据员工的考勤天数、请假天数、加班时长、绩效系数计算出实发工资。我建议把薪资计算写成一个独立的service类输入月份输出所有员工的工资数据。计算步骤大致是查出当月在职员工查出每个员工的考勤汇总数据查出该员工的薪资项配置基本工资、岗位工资结合请假扣款规则算出实发。这类计算逻辑用Java处理更方便不要试图一条SQL全部搞定否则SQL会写得非常复杂调试也困难。但统计报表可以用SQL。比如按部门统计平均工资、按月统计人工成本趋势、按岗位类型统计人数分布。MyBatis XML里写联表查询SELECT d.name, COUNT(e.id), SUM(s.base_salary s.performance_salary) FROM dept d LEFT JOIN employee e ON e.dept_id d.id LEFT JOIN salary s ON s.employee_id e.id AND s.salary_month #{month} GROUP BY d.id。注意用LEFT JOIN避免没有员工的部门统计不出来。Excel导出用EasyExcel的write方法设置响应头ContentType和ContentDisposition让浏览器弹出下载框。导出时注意大文件可能超内存可以先分页查询再分批写入Excel。前端如果要用图表展示薪酬趋势可以接ECharts后端把按月统计数据封装成折线图需要的结构返回JSON。5. 论文怎么写从开题到答辩的完整路径5.1 论文结构映射章节与技术实现对应很多同学把论文写成“系统说明书”这是最大的误区。论文结构应该和技术实现形成映射关系让评委看到的是你的思考过程而不是界面截图。推荐章节结构是第一章绪论写研究背景、国内外现状、论文结构第二章相关技术介绍写Spring Boot、MyBatis、Redis、MinIO、Vue这些技术的概述第三章需求分析写系统角色、功能需求、非功能需求、用例图第四章系统设计写总体架构、功能模块设计、数据库设计、接口设计第五章系统实现按模块展示关键代码和截图第六章系统测试写测试方法、测试用例、结果分析最后是总结与展望。每一章分别放什么内容要拿捏好。相关技术介绍不要写成API手册重点写你选择它的理由以及它在项目里承担的角色。需求分析要多写场景描述比如“HR登录后可以按部门筛选员工并导出Excel”这样有画面感。数据库设计不要只贴建表语句要附ER图说明每个表之间的关系用外键逻辑关联还是代码关联为什么这么取舍。论文里的图表最好用绘图工具画得统一一些。用例图画清楚三个角色的边界时序图画登录流程、请假审批流程、打卡流程。表结构可以用表格形式列出字段、类型、约束、说明。图表的作用是让评委快速理解系统而不是让他们从代码里猜。5.2 测试部分与截图怎么准备系统测试这一章往往是凑字数重灾区但不代表可以随便写。测试用例要设计得有条理基础功能测试、接口测试、并发测试、兼容性测试、安全测试。每类测试列出几条核心用例标明预期结果和实际结果。功能测试用例举例管理员新增角色时选择菜单权限后保存重新登录后该角色账号只能访问选中菜单。考勤测试设定一个员工当天没有打卡记录执行任务后考勤状态为“缺卡”。这种用例能直接体现系统的业务完整性。性能测试可以用JMeter压一下登录接口和员工列表查询接口。设置100个并发用户看一下响应时间在多少毫秒数据库连接池有没有报错。不需要追求特别高深的性能调优但要会看聚合报告然后写进论文“在100并发下登录接口平均响应时间XXms错误率0%”。截图准备有几个讲究。所有页面截图的浏览器窗口大小统一页面数据不要让明显假数据比如身份证号写“110101199001011234”这个格式一眼假。入职时间要合理薪资数字不要出现负数。演示系统前先在Redis里清掉缓存避免截图时数据状态和数据库不一致。6. 部署与演示让评委看到能跑的系统6.1 本地运行与Docker部署答辩现场最尴尬的事是系统跑不起来。所以部署方案一定要提前演练。开发期直接在IDEA里启动Spring Boot项目前端用npm run dev访问地址配好代理转发到后端8090端口。正式演示建议用Docker部署Spring Boot项目。在项目根目录写一个Dockerfile基于JDK17的基础镜像把项目打包好的jar复制到容器里EXPOSE端口ENTRYPOINT执行java -jar。构建命令是docker build -t hr-system .运行命令是docker run -d -p 8080:8080 --name hr-system hr-system。MySQL和Redis可以同样用Docker启动用docker-compose把三个容器编排在一起一键拉起。但要注意Docker部署后localhost地址就变了。前端配置的API地址不能写死成localhost要改成宿主机IP或者容器网络的别名。我在实际中遇到过前端页面能打开登录接口却报错排查半天发现是前端代理把请求转发到了容器内部端口而容器内没有开那个端口。所以部署完一定要用浏览器F12看Network确认请求真的到了后端。Spring Boot版本太高也会带来麻烦。比如Spring Boot 3.x要求JDK17包名从javax.servlet迁移到jakarta.servlet。如果你的电脑只装了JDK8千万别选Spring Boot 3.x老老实实选Spring Boot 2.7.x。还有springdoc-openapi在Spring Boot 3.x需要单独指定版本否则Swagger UI起不来。这些都是我已经踩过的坑论文里没必要写但实操中会浪费你很多时间。6.2 演示数据准备与演示脚本演示数据要贴近真实又要方便你熟练讲解。建议准备三个账号admin系统管理员、hr01 HR专员、emp01普通员工。admin登录后先演示系统管理创建一个新用户并分配角色然后演示员工管理查询一个员工并编辑信息上传头像导出Excel。接着用hr01登录演示考勤统计和薪资计算。最后用emp01登录演示发起请假申请和查看工资条。每个模块演示时间控制在两分钟以内总演示时间约十分钟。讲的时候按“业务场景—操作路径—系统反馈”的顺序。比如展示考勤统计时先说“HR每月需要知道每个员工的出勤情况”然后点开考勤汇总界面再说“系统根据打卡数据自动生成了统计结果迟到、请假、正常状态一目了然”。演示数据要提前清干净。部门名称、员工姓名、薪资数字都做合理不要把测试时生成的“测试1”、“asdf”留在库里。答辩前一天跑一遍完整流程把每一步的数据变化截图如果现场网络不稳定可以切换成本地演示模式先打开所有页面缓存好至少保证界面能看到。7. 常见问题与排查技巧实录7.1 开发期高频报错端口、JDK、Mapper、Redis整合Spring Boot MyBatis时最容易遇到Mapper接口扫描不到。Spring Boot启动类上要加MapperScan注解指定mapper包路径或者在每个Mapper接口上加Mapper注解。否则启动后调用接口会报Invalid bound statement。这两个方式效果一样但MapperScan更省事。数据库连不上要分情况看。MySQL 8以上的驱动类名是com.mysql.cj.jdbc.Driver不是com.mysql.jdbc.Driver别用旧版本。连接URL要加上useSSLfalse和serverTimezoneAsia/Shanghai不然会报时区错误。如果你本地端口跑过其他服务把server.port改成8081或在IDEA里配置启动端口就行。Redis连接失败大多数是服务没启动或者端口不是6379。本地开发如果不是虚拟机直接安装Redis Desktop Manager或者用命令redis-server启动。Spring Boot连Redis默认是模式Java客户端配置了时间和主机如果密码没配连接会一直报错。检查application.yml里的host、port、password是否与Redis实际配置一致。MinIO上传图片后访问URL报了403多半是Bucket权限设置成private了。开发环境可以在MinIO控制台把Bucket的Access Policy设置成Public前提是里面不传敏感文件。生产环境则用预签名URL有效期内可以访问过期后自动失效。这两种方案在论文里都要讲清楚最好写明你选的是哪种。引入外部jar包的问题也会常见。如果你的项目里需要用到本地一个工具jar不想上传到Maven仓库可以把jar放在项目的lib目录下然后在pom.xml里用system scope引用。但这样做缺点是打包时可能不会自动带进去需要配置maven-jar-plugin把lib目录打入可执行jar。更省心的做法是把这个工具类源码直接放到项目里或者安装到本地Maven仓库这里我建议你直接拷源码简单直接。7.2 答辩追问与回答思路提前准备几个必答点答辩老师特别喜欢问“为什么选Spring Boot”。不要只说“因为它主流、资料多”要有层次地答第一Spring Boot通过自动装配降低配置成本传统SSM需要写大量XMLSpring Boot基本不需要第二内嵌Tomcat让部署从“装服务器导war包”变成“直接跑jar”第三生态成熟不管是Redis、MinIO还是EasyExcel都有对应的Starter或SDK可以快速集成。“为什么用Redis”要答到点子上人力资源系统的部门树、字典数据是固定的低频变更数据放进Redis后可以减少数据库压力登录Token存在Redis里可以统一控制过期用户下线后立刻删除。这比你答“Redis是缓存数据库”要精准很多。“权限控制怎么做的”把JWT认证流程和RBAC模型结合着说。JWT保证“你是谁”RBAC保证“你能干什么”。角色绑定菜单权限用户再绑定角色权限数据在登录时加载到Redis接口拦截器每次校验当前请求是否有权限标识。如果老师追问Token被盗怎么办可以说加短期过期时间、定期刷新、敏感操作二次校验。“数据库为什么会这么设计”重点是员工表和用户表分离、考勤记录与考勤汇总分离、金额用decimal不用float。讲清楚每个表为什么拆不要背字段。记住一个答题原则先讲业务风险再讲技术对策。比如“员工离职时账号要保留所以员工信息和登录账号分开两张表”这句话就体现了你的思考。最后再提醒一个很多人容易忽略的地方答辩之前一定要把自己论文里的缩略语和每张图的意思全部过一遍。老师最爱对着你论文里的ER图问“这个表为什么没有外键”或者“这条线是OneToOne还是OneToMany”。你如果连自己画的图都解释不清前面讲得再好也会打折扣。我在实际带项目的时候还会让学生把系统跑起来以后故意输错几次数据观察报错提示是否友好。一个连空指针异常都直接裸奔给用户看的系统演示效果会大打折扣。提前写一个全局异常处理器统一拦截业务异常和系统异常把错误信息转成JSON返回这个小动作能让你的系统成熟度提高一个档次。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →