用JDBC连接数据库,设计一个学生宿舍管理信息系统,至上设计1~2个数据表,完成数据的增删改查,并且可以使用图形界面完成这些操作,写出完整代码并给出详细注释
时间: 2023-11-29 10:05:10 浏览: 51
好的,我可以为您提供这方面的帮助。在开始之前,需要明确一下使用的数据库类型和图形界面开发工具。
我将以MySQL数据库和Java Swing作为示例,为您提供代码和注释。
首先,我们需要创建一个名为"students"的数据库,并在其中创建一个名为"student_info"的数据表,该表包含以下字段:
- id (int, primary key, auto increment):学生ID
- name (varchar(50)):学生姓名
- gender (varchar(10)):学生性别
- dormitory (varchar(20)):学生宿舍号
- tel (varchar(20)):学生电话号码
接下来,我们需要编写Java代码来连接数据库并进行相关操作。代码如下所示:
```java
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class StudentManagementSystem extends JFrame implements ActionListener {
//定义组件
JLabel labelID, labelName, labelGender, labelDormitory, labelTel;
JTextField textID, textName, textGender, textDormitory, textTel;
JButton buttonAdd, buttonDelete, buttonUpdate, buttonSelect;
//定义数据库连接相关变量
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/students?useSSL=false&serverTimezone=UTC";
String user = "root";
String password = "123456";
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
public StudentManagementSystem() {
//设置窗口标题
setTitle("学生宿舍管理系统");
//创建组件
labelID = new JLabel("学生ID:");
labelName = new JLabel("学生姓名:");
labelGender = new JLabel("学生性别:");
labelDormitory = new JLabel("学生宿舍号:");
labelTel = new JLabel("学生电话号码:");
textID = new JTextField(10);
textName = new JTextField(10);
textGender = new JTextField(10);
textDormitory = new JTextField(10);
textTel = new JTextField(10);
buttonAdd = new JButton("添加");
buttonDelete = new JButton("删除");
buttonUpdate = new JButton("修改");
buttonSelect = new JButton("查询");
//添加组件
JPanel panel = new JPanel(new GridLayout(6, 2));
panel.add(labelID);
panel.add(textID);
panel.add(labelName);
panel.add(textName);
panel.add(labelGender);
panel.add(textGender);
panel.add(labelDormitory);
panel.add(textDormitory);
panel.add(labelTel);
panel.add(textTel);
panel.add(buttonAdd);
panel.add(buttonDelete);
panel.add(buttonUpdate);
panel.add(buttonSelect);
add(panel);
//注册监听器
buttonAdd.addActionListener(this);
buttonDelete.addActionListener(this);
buttonUpdate.addActionListener(this);
buttonSelect.addActionListener(this);
//设置窗口大小和位置
setSize(400, 250);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
//连接数据库
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e) {
//处理添加按钮事件
if (e.getSource() == buttonAdd) {
String id = textID.getText();
String name = textName.getText();
String gender = textGender.getText();
String dormitory = textDormitory.getText();
String tel = textTel.getText();
try {
String sql = "insert into student_info (name, gender, dormitory, tel) values (?, ?, ?, ?)";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, gender);
ps.setString(3, dormitory);
ps.setString(4, tel);
int result = ps.executeUpdate();
if (result > 0) {
JOptionPane.showMessageDialog(null, "添加成功");
} else {
JOptionPane.showMessageDialog(null, "添加失败");
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null) {
ps.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
//处理删除按钮事件
if (e.getSource() == buttonDelete) {
String id = textID.getText();
try {
String sql = "delete from student_info where id = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, id);
int result = ps.executeUpdate();
if (result > 0) {
JOptionPane.showMessageDialog(null, "删除成功");
} else {
JOptionPane.showMessageDialog(null, "删除失败");
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null) {
ps.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
//处理修改按钮事件
if (e.getSource() == buttonUpdate) {
String id = textID.getText();
String name = textName.getText();
String gender = textGender.getText();
String dormitory = textDormitory.getText();
String tel = textTel.getText();
try {
String sql = "update student_info set name = ?, gender = ?, dormitory = ?, tel = ? where id = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, gender);
ps.setString(3, dormitory);
ps.setString(4, tel);
ps.setString(5, id);
int result = ps.executeUpdate();
if (result > 0) {
JOptionPane.showMessageDialog(null, "修改成功");
} else {
JOptionPane.showMessageDialog(null, "修改失败");
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null) {
ps.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
//处理查询按钮事件
if (e.getSource() == buttonSelect) {
String id = textID.getText();
try {
String sql = "select * from student_info where id = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, id);
rs = ps.executeQuery();
if (rs.next()) {
textName.setText(rs.getString("name"));
textGender.setText(rs.getString("gender"));
textDormitory.setText(rs.getString("dormitory"));
textTel.setText(rs.getString("tel"));
} else {
JOptionPane.showMessageDialog(null, "查无此人");
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
public static void main(String[] args) {
new StudentManagementSystem();
}
}
```
以上代码实现了增删改查的功能,并且使用了Java Swing作为图形界面开发工具。需要注意的是,其中的数据库连接信息需要根据实际情况进行修改。
希望这份代码能够对您有所帮助!
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)