学生宿舍调换功能java代码
时间: 2023-07-10 20:37:26 浏览: 63
好的,这是一个使用 Java 编写的学生宿舍调换功能的示例代码,其中包含了连接数据库、查询宿舍信息、交换床位等功能:
```java
import java.sql.*;
public class DormitoryChange {
// JDBC 驱动和数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/dormitory";
// 数据库用户名和密码
static final String USER = "root";
static final String PASS = "password";
// 连接数据库
public static Connection connect() {
Connection conn = null;
try {
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER);
// 打开连接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
}
return conn;
}
// 查询宿舍信息
public static void queryDormitory(Connection conn, String dormitoryNumber) {
Statement stmt = null;
try {
// 创建语句对象
System.out.println("创建语句对象...");
stmt = conn.createStatement();
String sql = "SELECT * FROM students WHERE dormitory_number = '" + dormitoryNumber + "'";
ResultSet rs = stmt.executeQuery(sql);
// 输出宿舍信息
System.out.println("宿舍号:" + dormitoryNumber);
while (rs.next()) {
System.out.println("床位号:" + rs.getString("bed_number") + " 学生姓名:" + rs.getString("name"));
}
// 关闭结果集和语句对象
rs.close();
stmt.close();
} catch (SQLException se) {
se.printStackTrace();
} finally {
try {
if (stmt != null) stmt.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
// 交换床位
public static void changeBed(Connection conn, String dormitoryNumber, String bedNumber1, String bedNumber2) {
Statement stmt = null;
try {
// 创建语句对象
System.out.println("创建语句对象...");
stmt = conn.createStatement();
// 查询学生信息
String sql1 = "SELECT * FROM students WHERE dormitory_number = '" + dormitoryNumber + "' AND bed_number = '" + bedNumber1 + "'";
ResultSet rs1 = stmt.executeQuery(sql1);
rs1.next();
String name1 = rs1.getString("name");
int id1 = rs1.getInt("id");
String sql2 = "SELECT * FROM students WHERE dormitory_number = '" + dormitoryNumber + "' AND bed_number = '" + bedNumber2 + "'";
ResultSet rs2 = stmt.executeQuery(sql2);
rs2.next();
String name2 = rs2.getString("name");
int id2 = rs2.getInt("id");
// 交换床位
String update1 = "UPDATE students SET bed_number = '" + bedNumber2 + "' WHERE id = " + id1;
String update2 = "UPDATE students SET bed_number = '" + bedNumber1 + "' WHERE id = " + id2;
stmt.executeUpdate(update1);
stmt.executeUpdate(update2);
System.out.println(name1 + "和" + name2 + "床位交换成功!");
// 关闭结果集和语句对象
rs1.close();
rs2.close();
stmt.close();
} catch (SQLException se) {
se.printStackTrace();
} finally {
try {
if (stmt != null) stmt.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
public static void main(String[] args) {
Connection conn = null;
try {
// 连接数据库
conn = connect();
// 查询宿舍信息
queryDormitory(conn, "A101");
// 交换床位
changeBed(conn, "A101", "1", "2");
// 查询宿舍信息
queryDormitory(conn, "A101");
// 关闭连接
conn.close();
} catch (SQLException se) {
se.printStackTrace();
} finally {
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
System.out.println("程序结束。");
}
}
```
上述代码使用 JDBC 驱动连接 MySQL 数据库,实现了查询宿舍信息和交换床位的功能。你可以根据自己的需求修改代码,实现更复杂的学生宿舍调换功能。