编写基于javaswing+mysql学生宿舍管理系统中,寝室长查看寝室人员信息的代码,信息包括姓名,学号,性别,专业,班级,宿舍号,寝室楼
时间: 2024-09-20 12:01:20 浏览: 22
在Java Swing中构建一个学生宿舍管理系统,如果寝室长需要查看寝室人员的信息,你可以创建一个简单的窗口,展示一个表格或者列表来显示这些数据。这里是一个简化的例子:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class DormitoryManager extends JFrame {
private JTable table; // 表格组件
private Connection conn = null;
public DormitoryManager() {
try {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 连接到MySQL服务器
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/dormitory_system", "username", "password");
// 获取数据库表数据并填充到表格
populateTable();
// 设置窗口属性
setTitle("寝室人员信息查看");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 500);
// 创建表格组件
table = new JTable();
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane, BorderLayout.CENTER);
setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
private void populateTable() {
String query = "SELECT name, student_id, gender, major, class, dormitory_number, building_name FROM dormitory";
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(query);
// 为表格设置列名
Object[] columnNames = {"姓名", "学号", "性别", "专业", "班级", "宿舍号", "寝室楼"};
table.setModel(new DefaultTableModel(columnNames, 0));
while (rs.next()) {
// 添加行数据到表格
Object[] rowData = {rs.getString("name"), rs.getInt("student_id"),
rs.getString("gender"), rs.getString("major"), rs.getString("class"),
rs.getString("dormitory_number"), rs.getString("building_name")};
table.addRow(rowData);
}
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new DormitoryManager();
}
});
}
}
```