
连接MySQL数据库
使用JDBC(Java Database Connectivity)连接MySQL数据库,需加载驱动并配置连接信息:
String url = "jdbc:mysql://localhost:3306/smart_parking";
String username = "root";
String password = "123456";
Connection connection = DriverManager.getConnection(url, username, password);
确保引入MySQL驱动依赖(如Maven):
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
创建停车场管理表
设计数据库表存储车辆信息、停车记录等。示例SQL:
CREATE TABLE parking_slots (
slot_id INT AUTO_INCREMENT PRIMARY KEY,
slot_number VARCHAR(10) NOT NULL,
status ENUM('AVAILABLE', 'OCCUPIED') DEFAULT 'AVAILABLE'
);
CREATE TABLE vehicles (
vehicle_id INT AUTO_INCREMENT PRIMARY KEY,
license_plate VARCHAR(20) UNIQUE NOT NULL,
entry_time DATETIME,
exit_time DATETIME,
slot_id INT,
FOREIGN KEY (slot_id) REFERENCES parking_slots(slot_id)
);
实现车辆入库逻辑
通过Java代码插入车辆信息并更新车位状态:
String insertSQL = "INSERT INTO vehicles (license_plate, entry_time, slot_id) VALUES (?, NOW(), ?)";
PreparedStatement pstmt = connection.prepareStatement(insertSQL);
pstmt.setString(1, "京A12345");
pstmt.setInt(2, 1);
pstmt.executeUpdate();
String updateSlotSQL = "UPDATE parking_slots SET status = 'OCCUPIED' WHERE slot_id = ?";
PreparedStatement updateStmt = connection.prepareStatement(updateSlotSQL);
updateStmt.setInt(1, 1);
updateStmt.executeUpdate();
实现车辆出库逻辑
更新车辆离场时间并释放车位:
String updateExitSQL = "UPDATE vehicles SET exit_time = NOW() WHERE license_plate = ?";
PreparedStatement exitStmt = connection.prepareStatement(updateExitSQL);
exitStmt.setString(1, "京A12345");
exitStmt.executeUpdate();
String freeSlotSQL = "UPDATE parking_slots SET status = 'AVAILABLE' WHERE slot_id = ?";
PreparedStatement freeStmt = connection.prepareStatement(freeSlotSQL);
freeStmt.setInt(1, 1);
freeStmt.executeUpdate();
查询空闲车位
使用SQL查询并返回可用车位列表:
String querySQL = "SELECT slot_number FROM parking_slots WHERE status = 'AVAILABLE'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(querySQL);
while (rs.next()) {
System.out.println("空闲车位: " + rs.getString("slot_number"));
}
异常处理与资源关闭
确保数据库操作异常被捕获,并释放连接资源:
try {
// 数据库操作代码
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (connection != null) connection.close();
}
通过以上步骤,可实现智能停车场管理系统的基础功能,包括车辆入库、出库、车位状态管理。可根据需求扩展计费、会员管理等功能模块。

被折叠的 条评论
为什么被折叠?



