用Java写一个小区物业缴费系统,数据库是MySQL
时间: 2023-06-16 19:03:51 浏览: 76
好的,以下是一个简单的小区物业缴费系统的Java代码示例,使用MySQL作为数据库:
1. 首先需要创建MySQL数据库的表,可以使用以下SQL语句:
```sql
CREATE TABLE IF NOT EXISTS `property_payment` (
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`house_no` VARCHAR(20) NOT NULL COMMENT '房号',
`owner_name` VARCHAR(50) NOT NULL COMMENT '业主姓名',
`payment_month` VARCHAR(10) NOT NULL COMMENT '缴费月份',
`payment_amount` DECIMAL(10,2) NOT NULL COMMENT '缴费金额',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物业缴费记录表';
```
2. 接下来是Java代码实现,需要使用JDBC连接MySQL数据库,这里使用了Java SE 8中自带的JDBC驱动,首先需要下载MySQL Connector/J驱动,然后将其添加到项目的classpath中。
```java
import java.sql.*;
public class PropertyPaymentSystem {
// MySQL数据库连接信息
private static final String DB_URL = "jdbc:mysql://localhost:3306/property_payment_db";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "root";
// SQL语句
private static final String SELECT_ALL_SQL = "SELECT * FROM property_payment";
private static final String SELECT_BY_HOUSE_NO_SQL = "SELECT * FROM property_payment WHERE house_no = ?";
private static final String INSERT_SQL = "INSERT INTO property_payment(house_no, owner_name, payment_month, payment_amount) VALUES (?, ?, ?, ?)";
public static void main(String[] args) {
// 获取数据库连接
try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD)) {
// 查询所有缴费记录
try (PreparedStatement stmt = conn.prepareStatement(SELECT_ALL_SQL)) {
try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
int id = rs.getInt("id");
String houseNo = rs.getString("house_no");
String ownerName = rs.getString("owner_name");
String paymentMonth = rs.getString("payment_month");
double paymentAmount = rs.getDouble("payment_amount");
System.out.println(id + "\t" + houseNo + "\t" + ownerName + "\t" + paymentMonth + "\t" + paymentAmount);
}
}
}
// 根据房号查询缴费记录
String houseNo = "A-101";
try (PreparedStatement stmt = conn.prepareStatement(SELECT_BY_HOUSE_NO_SQL)) {
stmt.setString(1, houseNo);
try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
int id = rs.getInt("id");
String ownerName = rs.getString("owner_name");
String paymentMonth = rs.getString("payment_month");
double paymentAmount = rs.getDouble("payment_amount");
System.out.println(id + "\t" + houseNo + "\t" + ownerName + "\t" + paymentMonth + "\t" + paymentAmount);
}
}
}
// 添加一条缴费记录
String newHouseNo = "B-201";
String newOwnerName = "张三";
String newPaymentMonth = "2022-01";
double newPaymentAmount = 500.00;
try (PreparedStatement stmt = conn.prepareStatement(INSERT_SQL)) {
stmt.setString(1, newHouseNo);
stmt.setString(2, newOwnerName);
stmt.setString(3, newPaymentMonth);
stmt.setDouble(4, newPaymentAmount);
stmt.executeUpdate();
System.out.println("添加成功!");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
以上代码实现了查询所有缴费记录、根据房号查询缴费记录和添加一条缴费记录的功能。可以根据实际需求进行修改和扩展。