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 List getApartments() {
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 {
List getApartments();
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

