java实现一个连接数据库的房屋出租系统
时间: 2024-03-15 22:47:41 浏览: 15
这里是一个简单的Java实现房屋出租管理系统连接数据库的示例代码。首先,我们需要创建一个MySQL数据库和表。以下是SQL语句:
```sql
CREATE DATABASE house_rent;
USE house_rent;
CREATE TABLE house (
id INT(11) NOT NULL AUTO_INCREMENT,
address VARCHAR(255) DEFAULT NULL,
area DOUBLE DEFAULT NULL,
price DOUBLE DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
```
这里我们创建了一个名为 `house_rent` 的数据库和一个名为 `house` 的表,该表包含 `id`,`address`,`area`和`price` 四个字段。
接下来,我们需要使用JDBC连接到MySQL数据库并执行SQL语句。以下是Java代码示例:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class HouseRentSystem {
private static Connection connection = null;
public static Connection getConnection() {
if (connection != null)
return connection;
else {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/house_rent", "username", "password");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
}
public static void insertHouse(String address, double area, double price) {
Connection connection = getConnection();
try {
PreparedStatement ps = connection.prepareStatement("INSERT INTO house (address, area, price) VALUES (?, ?, ?)");
ps.setString(1, address);
ps.setDouble(2, area);
ps.setDouble(3, price);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void deleteHouse(int id) {
Connection connection = getConnection();
try {
PreparedStatement ps = connection.prepareStatement("DELETE FROM house WHERE id = ?");
ps.setInt(1, id);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void updateHouse(int id, String address, double area, double price) {
Connection connection = getConnection();
try {
PreparedStatement ps = connection.prepareStatement("UPDATE house SET address = ?, area = ?, price = ? WHERE id = ?");
ps.setString(1, address);
ps.setDouble(2, area);
ps.setDouble(3, price);
ps.setInt(4, id);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void listHouses() {
Connection connection = getConnection();
try {
PreparedStatement ps = connection.prepareStatement("SELECT * FROM house");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String address = rs.getString("address");
double area = rs.getDouble("area");
double price = rs.getDouble("price");
System.out.println("ID: " + id + ", Address: " + address + ", Area: " + area + ", Price: " + price);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
insertHouse("123 Main St", 100.5, 500.0);
insertHouse("456 High St", 150.0, 750.0);
listHouses();
updateHouse(1, "123 Main St", 120.0, 600.0);
listHouses();
deleteHouse(2);
listHouses();
}
}
```
在上面的代码中,我们使用 `getConnection()` 方法连接到MySQL数据库。我们使用 `PreparedStatement` 对象执行SQL语句来插入,更新和删除数据,使用 `ResultSet` 对象来读取数据。
在 `main()` 方法中,我们插入两个房屋记录,然后列出所有房屋,更新第一个房屋记录,再次列出所有房屋,最后删除第二个房屋记录并再次列出所有房屋。
这只是一个简单的示例,你可以根据实际需求修改代码来实现更复杂的功能。