Java Swing+MySQL 小型宠物店宠物寄养管理系统 毕业设计 完整源码
一、项目简介本项目是一款基于Java Swing MySQL开发的小型宠物店宠物寄养管理系统适用于中小型宠物店日常寄养业务、宠物档案管理、客户管理、疫苗记录、库存管理、营收统计等场景。系统界面简洁、功能完整、代码结构清晰非常适合作为 Java 课程设计、毕业设计、期末大作业使用。系统实现了从客户主人信息、宠物信息、疫苗档案、寄养订单、商品库存、营收统计、用户权限的全流程管理支持数据备份恢复、密码加密、订单结算、数据统计等实用功能。二、开发环境开发工具IDEA / Eclipse编程语言JavaUI框架Java Swing数据库MySQL 8.0数据库驱动mysql-connector-java 8.0系统架构单机桌面客户端模式三、系统功能模块本系统功能齐全分为七大核心模块用户登录与注册模块支持管理员注册、账号密码 SHA256 加密登录、记录最后登录时间、数据库备份与恢复。主人信息管理模块对宠物店客户宠物主人进行新增、修改、删除、查询管理包含姓名、电话、地址、备注信息。宠物信息管理模块绑定主人ID记录宠物名称、品种、性别、年龄、体重、健康状态支持增删改查。宠物疫苗档案模块为每只宠物建立疫苗接种记录包含疫苗名称、接种时间、到期时间、备注。寄养订单管理模块核心业务模块支持创建寄养订单、设置寄养起止时间、单日价格、订单结算、订单状态管理。用品库存管理模块管理宠物店售卖/使用的商品库存包含商品名称、分类、售价、库存数量、供应商信息。营收统计模块按时间段统计寄养订单数量、已结算订单总营收可视化数据汇总。系统用户管理模块支持新增管理员/店员账号、删除账号、查看用户列表区分管理员与普通店员角色。四、数据库详细设计含表结构字段注释本系统数据库采用MySQL 8.0共6张数据表包含用户权限、客户、宠物、疫苗、寄养订单、商品库存所有表结构规范、字段注释完整支持外键关联约束有效保证数据完整性。以下为完整建表语句及字段说明。4.1 系统用户表 sys_user用于存储系统登录账号、权限角色、登录记录密码SHA256加密存储CREATE TABLE sys_user ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 主键ID, username VARCHAR(50) NOT NULL UNIQUE COMMENT 登录用户名, password VARCHAR(100) NOT NULL COMMENT 加密后密码, role VARCHAR(20) NOT NULL COMMENT 角色admin管理员 / user店员, create_time VARCHAR(50) COMMENT 账号创建时间, last_login_time VARCHAR(50) COMMENT 最后登录时间 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT系统用户表;4.2 宠物主人表 pet_owner存储宠物店客户信息为宠物信息的上级关联表CREATE TABLE pet_owner ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 主人主键ID, owner_name VARCHAR(50) NOT NULL COMMENT 主人姓名, owner_phone VARCHAR(20) NOT NULL COMMENT 联系电话, owner_address VARCHAR(200) COMMENT 居住地址, remark VARCHAR(200) COMMENT 备注信息, create_time VARCHAR(50) COMMENT 信息录入时间 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT宠物主人信息表;4.3 宠物信息表 pet_info关联宠物主人存储所有宠物基础档案信息核心基础数据表CREATE TABLE pet_info ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 宠物主键ID, owner_id INT NOT NULL COMMENT 关联主人ID, pet_name VARCHAR(50) NOT NULL COMMENT 宠物名称, pet_type VARCHAR(50) COMMENT 宠物品种, pet_sex VARCHAR(10) COMMENT 宠物性别, pet_age VARCHAR(20) COMMENT 宠物年龄, pet_weight VARCHAR(20) COMMENT 宠物体重, health_desc VARCHAR(200) COMMENT 健康状况描述, create_time VARCHAR(50) COMMENT 录入时间 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT宠物信息表;4.4 宠物疫苗档案表 pet_vaccine关联宠物ID记录宠物疫苗接种台账方便溯源管理CREATE TABLE pet_vaccine ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 疫苗记录ID, pet_id INT NOT NULL COMMENT 关联宠物ID, vaccine_name VARCHAR(50) NOT NULL COMMENT 疫苗名称, vaccine_date VARCHAR(30) COMMENT 接种日期, expire_date VARCHAR(30) COMMENT 疫苗到期日期, remark VARCHAR(200) COMMENT 备注说明, create_time VARCHAR(50) COMMENT 记录录入时间 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT宠物疫苗档案表;4.5 寄养订单表 foster_order系统核心业务表记录宠物寄养所有订单数据、价格、状态、结算信息CREATE TABLE foster_order ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 订单ID, pet_id INT NOT NULL COMMENT 关联宠物ID, start_date VARCHAR(30) COMMENT 寄养开始日期, end_date VARCHAR(30) COMMENT 预计离店日期, daily_price DECIMAL(10,2) COMMENT 每日寄养单价, total_money DECIMAL(10,2) DEFAULT 0 COMMENT 订单总金额, status VARCHAR(20) DEFAULT 寄养中 COMMENT 订单状态寄养中/已结算, care_remark VARCHAR(200) COMMENT 寄养照料备注, settle_time VARCHAR(50) COMMENT 订单结算时间, create_time VARCHAR(50) COMMENT 订单创建时间 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT寄养订单表;4.6 商品库存表 goods_stock记录宠物店耗材、售卖商品的库存、价格及供应商信息CREATE TABLE goods_stock ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 商品ID, goods_name VARCHAR(50) NOT NULL COMMENT 商品名称, goods_type VARCHAR(30) COMMENT 商品分类, price DECIMAL(10,2) COMMENT 商品售价, stock_num INT DEFAULT 0 COMMENT 库存数量, supplier VARCHAR(50) COMMENT 供应商, create_time VARCHAR(50) COMMENT 录入时间 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT商品库存表;五、系统特色亮点密码安全加密采用 SHA256 加密算法密码不明文存储安全性更高。数据库备份恢复系统内置一键备份、一键恢复 SQL 功能保障数据安全。完整业务闭环客户→宠物→疫苗→寄养订单→结算→营收统计业务完整。防误删机制有关联数据的主数据禁止删除避免数据库外键报错。时间段数据统计支持自定义日期范围统计订单量、营收总额。角色区分区分管理员、店员角色可拓展权限控制。界面简洁美观Tab 标签页布局操作直观零基础也能上手。五、系统特色亮点1. JDBC 数据库连接系统统一封装数据库连接方法自动获取连接、关闭连接避免资源泄露。配置时区、关闭SSL适配 MySQL8.0。2. SHA256 密码加密自定义加密工具方法对注册、登录密码进行哈希加密保证系统账号安全。3. Swing 表格数据渲染使用 DefaultTableModel 动态加载数据库数据实现表格刷新、数据回填、选中操作。4. 系统调用 cmd 实现数据库备份恢复通过 Runtime 执行 mysqldump、mysql 命令实现可视化备份恢复功能实用性极强。六、核心项目代码展示6.1 数据库连接核心代码全局封装JDBC连接适配MySQL8.0统一管理连接、关闭资源避免资源泄漏// 数据库配置常量 private static final String DB_URL jdbc:mysql://localhost:3306/pet_foster_db?serverTimezoneAsia/ShanghaiuseSSLfalse; private static final String DB_USER root; private static final String DB_PASSWORD admin123; private Connection connection; // 初始化数据库连接 private boolean initConn() { try { if (connection null || connection.isClosed()) { Class.forName(com.mysql.cj.jdbc.Driver); connection DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); } return true; } catch (ClassNotFoundException | SQLException e) { JOptionPane.showMessageDialog(null, 数据库连接失败 e.getMessage()); e.printStackTrace(); return false; } } // 关闭数据库连接 private void closeConn() { try { if (connection ! null !connection.isClosed()) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } }6.2 SHA256密码加密核心代码账号密码加密存储规避明文存储风险提升系统安全性// SHA256密码加密 private String encryptPwd(String pwd) { try { MessageDigest md MessageDigest.getInstance(SHA-256); byte[] hash md.digest(pwd.getBytes(UTF-8)); StringBuilder sb new StringBuilder(); for (byte b : hash) { sb.append(String.format(%02x, b)); } return sb.toString(); } catch (NoSuchAlgorithmException | java.io.UnsupportedEncodingException e) { e.printStackTrace(); return pwd; } }6.3 数据库备份恢复核心代码调用系统CMD命令实现一键数据库备份、恢复项目特色功能// 数据库备份 private void backupDatabase() { JFileChooser chooser new JFileChooser(); chooser.setDialogTitle(选择备份保存位置); String fileName pet_foster_backup_ dateFormat.format(new Date()) .sql; chooser.setSelectedFile(new File(fileName)); FileNameExtensionFilter filter new FileNameExtensionFilter(SQL备份文件, sql); chooser.setFileFilter(filter); int opt chooser.showSaveDialog(loginFrame); if (opt ! JFileChooser.APPROVE_OPTION) return; File saveFile chooser.getSelectedFile(); String cmd mysqldump -u DB_USER -p DB_PASSWORD pet_foster_db saveFile.getAbsolutePath(); try { Runtime.getRuntime().exec(cmd); JOptionPane.showMessageDialog(loginFrame, 备份成功\n路径 saveFile.getAbsolutePath()); } catch (IOException e) { JOptionPane.showMessageDialog(loginFrame, 备份失败请配置MySQL环境变量); e.printStackTrace(); } } // 数据库恢复 private void restoreDatabase() { JFileChooser chooser new JFileChooser(); chooser.setDialogTitle(选择备份sql文件); FileNameExtensionFilter filter new FileNameExtensionFilter(SQL备份文件, sql); chooser.setFileFilter(filter); int opt chooser.showOpenDialog(loginFrame); if (opt ! JFileChooser.APPROVE_OPTION) return; File loadFile chooser.getSelectedFile(); String cmd mysql -u DB_USER -p DB_PASSWORD pet_foster_db loadFile.getAbsolutePath(); try { Runtime.getRuntime().exec(cmd); JOptionPane.showMessageDialog(loginFrame, 数据恢复成功请重新登录); } catch (IOException e) { JOptionPane.showMessageDialog(loginFrame, 恢复失败请配置MySQL环境变量); e.printStackTrace(); } }6.4 寄养订单结算核心业务代码核心业务逻辑实现订单状态更新、结算时间记录// 订单结算 private void settleOrder() { int row fosterTable.getSelectedRow(); if (row -1) { JOptionPane.showMessageDialog(mainFrame, 选择订单); return; } int orderId Integer.parseInt(fosterTable.getValueAt(row, 0).toString()); String sqlUpdate UPDATE foster_order SET status已结算,settle_timeNOW() WHERE id?; try (PreparedStatement pstmt connection.prepareStatement(sqlUpdate)) { pstmt.setInt(1, orderId); pstmt.executeUpdate(); JOptionPane.showMessageDialog(mainFrame, 订单结算完成); refreshFosterTable(); } catch (SQLException e) { e.printStackTrace(); } }6.5 营收数据统计核心代码按自定义时间段统计订单数量、总营收实现数据可视化汇总// 营收汇总统计 private void loadIncomeTotalStat(){ String sql SELECT SUM(total_money) total_income,COUNT(id) total_order FROM foster_order WHERE status已结算 AND DATE(settle_time) BETWEEN ? AND ?; try(PreparedStatement pstmt connection.prepareStatement(sql)){ pstmt.setString(1,statStart.getText().trim()); pstmt.setString(2,statEnd.getText().trim()); ResultSet rs pstmt.executeQuery(); DefaultTableModel model new DefaultTableModel(new String[]{时间段结算订单总数,总营收金额},0); if(rs.next()){ model.addRow(new Object[]{rs.getInt(total_order),rs.getDouble(total_income)}); } incomeStatTable.setModel(model); }catch (SQLException e){ e.printStackTrace(); } }七、运行教程创建 MySQL 数据库pet_foster_db导入数据库表结构可自行根据字段建表或执行备份文件修改代码中数据库账号、密码为自己本地 MySQL 账号密码导入 mysql 驱动包运行主方法启动系统注册账号后登录使用八、项目总结本宠物店寄养管理系统功能完整、代码规范、界面整洁覆盖了宠物寄养行业的基础管理需求适合作为Java 毕业设计、课程设计、练手项目。项目无冗余代码模块分工明确非常适合新手学习 JavaSwing 桌面开发与 JDBC 数据库交互。可二次拓展功能宠物寄养天数自动计算、订单自动计价、员工权限细分、图片上传、打印订单、Excel 导出等。