java项目之人才公寓管理系统(ssm+mysql+jsp)
发布人:shili8
发布时间:2025-02-28 09:59
阅读次数:0
**Java项目之人才公寓管理系统**
**系统概述**
本系统是一个综合性的人才公寓管理系统,主要功能包括:
* 公寓信息管理* 房客信息管理* 租房申请管理* 租金缴纳管理**技术栈**
* **前端**: JSP + JavaScript* **后端**: Spring MVC + Spring + MyBatis* **数据库**: MySQL**系统设计**
###1. 公寓信息管理####1.1 公寓基本信息表| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 主键 |
| name | varchar(50) | 公寓名称 |
| address | varchar(100) | 公寓地址 |
sqlCREATE TABLE apartment_info ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), address VARCHAR(100) );
####1.2 公寓照片表| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 主键 |
| apartment_id | int | 外键,关联公寓基本信息表 |
| photo_url | varchar(200) | 照片地址 |
sqlCREATE TABLE apartment_photo ( id INT PRIMARY KEY AUTO_INCREMENT, apartment_id INT, photo_url VARCHAR(200), FOREIGN KEY (apartment_id) REFERENCES apartment_info(id) );
###2. 房客信息管理####2.1 房客基本信息表| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 主键 |
| name | varchar(50) | 房客名称 |
| phone | varchar(20) | 房客电话 |
sqlCREATE TABLE tenant_info ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), phone VARCHAR(20) );
###3. 租房申请管理####3.1 租房申请表| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 主键 |
| tenant_id | int | 外键,关联房客基本信息表 |
| apartment_id | int | 外键,关联公寓基本信息表 |
| apply_date | date |申请日期 |
sqlCREATE TABLE rent_apply ( id INT PRIMARY KEY AUTO_INCREMENT, tenant_id INT, apartment_id INT, apply_date DATE, FOREIGN KEY (tenant_id) REFERENCES tenant_info(id), FOREIGN KEY (apartment_id) REFERENCES apartment_info(id) );
###4. 租金缴纳管理####4.1 租金缴纳表| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 主键 |
| tenant_id | int | 外键,关联房客基本信息表 |
| apartment_id | int | 外键,关联公寓基本信息表 |
| payment_date | date | 缴纳日期 |
| payment_amount | decimal(10,2) | 缴纳金额 |
sqlCREATE TABLE rent_payment ( id INT PRIMARY KEY AUTO_INCREMENT, tenant_id INT, apartment_id INT, payment_date DATE, payment_amount DECIMAL(10,2), FOREIGN KEY (tenant_id) REFERENCES tenant_info(id), FOREIGN KEY (apartment_id) REFERENCES apartment_info(id) );
**Spring MVC 控制器**
java// 公寓信息控制器@RestController@RequestMapping("/api/apartments") public class ApartmentController { @Autowired private ApartmentService apartmentService; // 获取公寓列表 @GetMapping public ListgetApartments() { return apartmentService.getApartments(); } // 添加公寓 @PostMapping public void addApartment(@RequestBody Apartment apartment) { apartmentService.addApartment(apartment); } } // 房客信息控制器@RestController@RequestMapping("/api/tenants") public class TenantController { @Autowired private TenantService tenantService; // 获取房客列表 @GetMapping public List getTenants() { return tenantService.getTenants(); } // 添加房客 @PostMapping public void addTenant(@RequestBody Tenant tenant) { tenantService.addTenant(tenant); } } // 租房申请控制器@RestController@RequestMapping("/api/rents") public class RentController { @Autowired private RentService rentService; // 获取租房列表 @GetMapping public List getRents() { return rentService.getRents(); } // 添加租房申请 @PostMapping public void addRent(@RequestBody Rent rent) { rentService.addRent(rent); } } // 租金缴纳控制器@RestController@RequestMapping("/api/payments") public class PaymentController { @Autowired private PaymentService paymentService; // 获取租金列表 @GetMapping public List getPayments() { return paymentService.getPayments(); } // 添加租金缴纳 @PostMapping public void addPayment(@RequestBody Payment payment) { paymentService.addPayment(payment); } }
**MyBatis mapper**
java// 公寓信息mapperpublic interface ApartmentMapper { ListgetApartments(); void addApartment(Apartment apartment); } // 房客信息mapperpublic interface TenantMapper { List getTenants(); void addTenant(Tenant tenant); } // 租房申请mapperpublic interface RentMapper { List getRents(); void addRent(Rent rent); } // 租金缴纳mapperpublic interface PaymentMapper { List getPayments(); void addPayment(Payment payment); }
**Spring MVC 配置**
java// Spring MVC配置@Configuration@EnableWebMvc@ComponentScan(basePackages = "com.example") public class WebConfig extends WebMvcConfigurerAdapter { @Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; } }
**JSP 页面**
jsp<!-- 公寓列表页面 --> <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri=" prefix="c" %> <!DOCTYPE html> <html> <head> <title>公寓列表</title> </head> <body> <h1>公寓列表</h1> <table border="1"> <tr> <th>ID</th> <th>名称</th> <th>地址</th> </tr> <c:forEach items="${apartments}" var="apartment"> <tr> <td>${apartment.id}</td> <td>${apartment.name}</td> <td>${apartment.address}</td> </tr> </c:forEach> </table> </body> </html> <!-- 房客列表页面 --> <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri=" prefix="c" %> <!DOCTYPE html> <html> <head> <title>房客列表</title> </head> <body> <h1>房客列表</h1> <table border="1"> <tr> <th>ID</th> <th>名称</th> <th>电话</th> </tr> <c:forEach items="${tenants}" var="tenant"> <tr> <td>${tenant.id}</td> <td>${tenant.name}</td> <td>${tenant.phone}</td> </tr> </c:forEach> </table> </body> </html> <!-- 租房申请页面 --> <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri=" prefix="c" %> <!DOCTYPE html> <html> <head> <title>租房申请</title> </head> <body> <h1>租房申请</h1> <form action="${pageContext.request.contextPath}/api/rents/addRent" method="post"> <table border="1"> <tr> <td>ID:</td> <td><input type="text" name="id" value="${tenant.id}"></td> </tr> <tr> <td>名称:</td> <td><input type="text" name="name" value="${tenant.name}"></td> </tr