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

一个基于Spring Boot的简单网吧管理系统

一个基于Spring Boot的简单网吧管理系统的案例代码。这个系统包括用户管理、电脑管理、上机记录管理等功能。代码结构清晰,适合初学者学习和参考。

1. 项目结构
src/main/java/com/example/netbarmanagement ├── controller │ ├── ComputerController.java │ ├── UserController.java │ └── RecordController.java ├── model │ ├── Computer.java │ ├── User.java │ └── Record.java ├── repository │ ├── ComputerRepository.java │ ├── UserRepository.java │ └── RecordRepository.java ├── service │ ├── ComputerService.java │ ├── UserService.java │ └── RecordService.java └── NetbarManagementApplication.java
2. 依赖配置 (pom.xml)
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
3. 实体类 (model包)
Computer.java
package com.example.netbarmanagement.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Computer { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private boolean isOccupied; // Getters and Setters public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isOccupied() { return isOccupied; } public void setOccupied(boolean occupied) { isOccupied = occupied; } }
User.java
package com.example.netbarmanagement.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String password; // Getters and Setters public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
Record.java
package com.example.netbarmanagement.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import java.time.LocalDateTime; @Entity public class Record { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private Long userId; private Long computerId; private LocalDateTime startTime; private LocalDateTime endTime; // Getters and Setters public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Long getUserId() { return userId; } public void setUserId(Long userId) { this.userId = userId; } public Long getComputerId() { return computerId; } public void setComputerId(Long computerId) { this.computerId = computerId; } public LocalDateTime getStartTime() { return startTime; } public void setStartTime(LocalDateTime startTime) { this.startTime = startTime; } public LocalDateTime getEndTime() { return endTime; } public void setEndTime(LocalDateTime endTime) { this.endTime = endTime; } }
4. 仓库接口 (repository包)
ComputerRepository.java
package com.example.netbarmanagement.repository; import com.example.netbarmanagement.model.Computer; import org.springframework.data.jpa.repository.JpaRepository; public interface ComputerRepository extends JpaRepository<Computer, Long> { }
UserRepository.java
package com.example.netbarmanagement.repository; import com.example.netbarmanagement.model.User; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { }
RecordRepository.java
package com.example.netbarmanagement.repository; import com.example.netbarmanagement.model.Record; import org.springframework.data.jpa.repository.JpaRepository; public interface RecordRepository extends JpaRepository<Record, Long> { }
5. 服务层 (service包)
ComputerService.java
package com.example.netbarmanagement.service; import com.example.netbarmanagement.model.Computer; import com.example.netbarmanagement.repository.ComputerRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class ComputerService { @Autowired private ComputerRepository computerRepository; public List<Computer> getAllComputers() { return computerRepository.findAll(); } public Computer getComputerById(Long id) { return computerRepository.findById(id).orElse(null); } public Computer saveComputer(Computer computer) { return computerRepository.save(computer); } public void deleteComputer(Long id) { computerRepository.deleteById(id); } }
UserService.java
package com.example.netbarmanagement.service; import com.example.netbarmanagement.model.User; import com.example.netbarmanagement.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserService { @Autowired private UserRepository userRepository; public List<User> getAllUsers() { return userRepository.findAll(); } public User getUserById(Long id) { return userRepository.findById(id).orElse(null); } public User saveUser(User user) { return userRepository.save(user); } public void deleteUser(Long id) { userRepository.deleteById(id); } }
RecordService.java
package com.example.netbarmanagement.service; import com.example.netbarmanagement.model.Record; import com.example.netbarmanagement.repository.RecordRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class RecordService { @Autowired private RecordRepository recordRepository; public List<Record> getAllRecords() { return recordRepository.findAll(); } public Record getRecordById(Long id) { return recordRepository.findById(id).orElse(null); } public Record saveRecord(Record record) { return recordRepository.save(record); } public void deleteRecord(Long id) { recordRepository.deleteById(id); } }
6. 控制器层 (controller包)
ComputerController.java
package com.example.netbarmanagement.controller; import com.example.netbarmanagement.model.Computer; import com.example.netbarmanagement.service.ComputerService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/computers") public class ComputerController { @Autowired private ComputerService computerService; @GetMapping public List<Computer> getAllComputers() { return computerService.getAllComputers(); } @GetMapping("/{id}") public Computer getComputerById(@PathVariable Long id) { return computerService.getComputerById(id); } @PostMapping public Computer createComputer(@RequestBody Computer computer) { return computerService.saveComputer(computer); } @PutMapping("/{id}") public Computer updateComputer(@PathVariable Long id, @RequestBody Computer computer) { computer.setId(id); return computerService.saveComputer(computer); } @DeleteMapping("/{id}") public void deleteComputer(@PathVariable Long id) { computerService.deleteComputer(id); } }
UserController.java
package com.example.netbarmanagement.controller; import com.example.netbarmanagement.model.User; import com.example.netbarmanagement.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping public List<User> getAllUsers() { return userService.getAllUsers(); } @GetMapping("/{id}") public User getUserById(@PathVariable Long id) { return userService.getUserById(id); } @PostMapping public User createUser(@RequestBody User user) { return userService.saveUser(user); } @PutMapping("/{id}") public User updateUser(@PathVariable Long id, @RequestBody User user) { user.setId(id); return userService.saveUser(user); } @DeleteMapping("/{id}") public void deleteUser(@PathVariable Long id) { userService.deleteUser(id); } }
RecordController.java
package com.example.netbarmanagement.controller; import com.example.netbarmanagement.model.Record; import com.example.netbarmanagement.service.RecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/records") public class RecordController { @Autowired private RecordService recordService; @GetMapping public List<Record> getAllRecords() { return recordService.getAllRecords(); } @GetMapping("/{id}") public Record getRecordById(@PathVariable Long id) { return recordService.getRecordById(id); } @PostMapping public Record createRecord(@RequestBody Record record) { return recordService.saveRecord(record); } @PutMapping("/{id}") public Record updateRecord(@PathVariable Long id, @RequestBody Record record) { record.setId(id); return recordService.saveRecord(record); } @DeleteMapping("/{id}") public void deleteRecord(@PathVariable Long id) { recordService.deleteRecord(id); } }
7. 主应用类 (NetbarManagementApplication.java)
package com.example.netbarmanagement; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class NetbarManagementApplication { public static void main(String[] args) { SpringApplication.run(NetbarManagementApplication.class, args); } }
8. 配置文件 (application.properties)
spring.datasource.url=jdbc:h2:mem:netbar spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.h2.console.enabled=true
9. 运行项目
  1. 使用mvn spring-boot:run命令运行项目。
  2. 访问http://localhost:8080/h2-console查看H2数据库。
  3. 使用API工具(如Postman)测试各个接口。
10. 扩展功能
  • 添加用户登录和权限管理(使用Spring Security)。
  • 添加计费功能,根据上机时间计算费用。
  • 添加前端页面(使用Thymeleaf或Vue.js等前端框架)。

这个案例代码是一个基础的网吧管理系统,适合初学者学习和扩展。你可以根据实际需求进一步开发和优化。

http://www.jsqmd.com/news/472895/

相关文章:

  • ZS316搭配VL171 实现TypeC互转DP 8K60 设计方案
  • 三次谐波注入 SPWM调制 matlab simulink 仿真 3相逆变器开关函数
  • Hertz框架内存管理:后端性能优化的关键
  • 【ETestDEV5教程24】通信协议管理之功能支持
  • 利用机器学习对生产中的电池周期寿命进行早期质量分类和预测
  • COMSOL 激光烧蚀3D体热源引力场温度场仿真探索
  • 根据距离控制变频器加减速带参数子程序
  • 当AI学会“读心术“:我的短视频创作焦虑被这款神器治愈了
  • 27. 移除元素
  • 李哥深度学习班学习笔记——图像识别
  • AI Agent时代来临:Cursor、Claude Code重构开发者生态
  • 石墨烯/钙钛矿太阳能电池COMSOL仿真:文献复现光电耦合模型
  • 京东社招——Java后端开发面试复盘
  • 面向强随机性场景的短期净负荷功率预测:基于集成学习的元学习器设计
  • 勒索病毒专盯数据库? TDE 透明加密如何筑起“最后一道防线
  • Linuex操作系统的优化
  • 分库分表(一)
  • vmd分解联合小波阈值降噪MATLAB代码。具体实现功能如下: 1.数据加载与预处理 数据从CSV文件读取并转换为数组,处理了多列数据的情况。 采样频率 Fs 设置为1000 Hz,这是后续时频分析的
  • PID算法(3)- PID就是求【针对控制量的一个比例+积分+微分】的值
  • 复现论文:基于动力学Wulff图理解和控制异质外延——以GaN为例
  • 类与对象说人话
  • K-Means聚类算法的数据可视化与综合分析:从原理到实践的完整指南
  • Agent-Browser 简明教程
  • 多智能体事件触发一致性
  • SQL 客户端远程登录服务器详细操作教程
  • 6 个动作锻炼核心肌群,让你的腰力更强!
  • 再斩国际设计大奖!玛吉斯VS6、HP6荣获2026德国iF设计奖
  • 多相流模拟在含裂缝非均质地层中的数值计算研究——基于间断伽辽金方法的探索
  • 2026年如何查看AI关键词排名?品牌在AI回答中的排序一键测
  • nginx的核心功能