请用java联系数据库test1中的表employee,编号文本框对应数据表中id,姓名文本框对应数据表中的name,性别文本框对应数据表中的gender,部门文本框对应数据表中的deoartment,职位文本框对应数据表中的position,输入编号点击查询可以查询到数据,再修改文本框数据点击修改可以表中数据进行修改
时间: 2024-03-25 17:37:16 浏览: 45
以下是一个简单的 Java Swing 界面,可以实现根据员工编号查询和修改员工信息的功能。注意,这只是一个简单的示例,实际开发中需要根据具体情况进行更改和完善。
```java
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
public class EmployeeManagementSystem extends JFrame implements ActionListener {
private JLabel idLabel, nameLabel, genderLabel, departmentLabel, positionLabel;
private JTextField idField, nameField, genderField, departmentField, positionField;
private JButton searchButton, updateButton;
private Connection conn;
public EmployeeManagementSystem() {
super("Employee Management System");
setLayout(new GridLayout(6, 2));
idLabel = new JLabel("编号:");
nameLabel = new JLabel("姓名:");
genderLabel = new JLabel("性别:");
departmentLabel = new JLabel("部门:");
positionLabel = new JLabel("职位:");
idField = new JTextField(10);
nameField = new JTextField(10);
genderField = new JTextField(10);
departmentField = new JTextField(10);
positionField = new JTextField(10);
searchButton = new JButton("查询");
updateButton = new JButton("修改");
add(idLabel);
add(idField);
add(nameLabel);
add(nameField);
add(genderLabel);
add(genderField);
add(departmentLabel);
add(departmentField);
add(positionLabel);
add(positionField);
add(searchButton);
add(updateButton);
searchButton.addActionListener(this);
updateButton.addActionListener(this);
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test1";
conn = DriverManager.getConnection(url, "root", "password");
} catch (Exception ex) {
ex.printStackTrace();
}
setSize(300, 200);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent event) {
try {
if (event.getSource() == searchButton) {
String selectSQL = "SELECT * FROM employee WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(selectSQL);
pstmt.setInt(1, Integer.parseInt(idField.getText()));
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
nameField.setText(rs.getString("name"));
genderField.setText(rs.getString("gender"));
departmentField.setText(rs.getString("department"));
positionField.setText(rs.getString("position"));
} else {
JOptionPane.showMessageDialog(this, "没有找到记录", "错误", JOptionPane.ERROR_MESSAGE);
}
pstmt.close();
} else if (event.getSource() == updateButton) {
String updateSQL = "UPDATE employee SET name = ?, gender = ?, department = ?, position = ? WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(updateSQL);
pstmt.setString(1, nameField.getText());
pstmt.setString(2, genderField.getText());
pstmt.setString(3, departmentField.getText());
pstmt.setString(4, positionField.getText());
pstmt.setInt(5, Integer.parseInt(idField.getText()));
int rows = pstmt.executeUpdate();
if (rows > 0) {
JOptionPane.showMessageDialog(this, "记录已更新", "提示", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(this, "更新记录失败", "错误", JOptionPane.ERROR_MESSAGE);
}
pstmt.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
new EmployeeManagementSystem();
}
}
```
在上述代码中,我们使用 `JDBC` 连接了 MySQL 数据库,并实现了根据员工编号查询和修改员工信息的功能。其中,`searchButton` 和 `updateButton` 分别对应查询和修改操作,当用户点击按钮时,会触发 `actionPerformed()` 方法,根据不同的事件源进行不同的操作。在查询操作中,我们使用 `PreparedStatement` 对象预编译了查询语句,避免了 SQL 注入攻击;在修改操作中,我们使用了 `PreparedStatement` 对象和 `executeUpdate()` 方法来执行更新语句,将数据表中对应的记录修改为用户输入的数据。
注意,上述代码中的数据库连接信息、SQL 语句等需要根据实际情况进行修改。同时,为了保证程序的安全性,我们需要进行输入合法性检查和异常处理等操作。
阅读全文