Java程序如何操作MySQL?通过一个「智能停车场管理系统」

连接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();
}

通过以上步骤,可实现智能停车场管理系统的基础功能,包括车辆入库、出库、车位状态管理。可根据需求扩展计费、会员管理等功能模块。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值