编写一个java swing 系统,该系统基于java语言连接mysql,该系统要实现基本信息录入、修改、查询等功能: 各种信息的输入,包括职工基本信息,包括的数据项有:职工编号、姓名、性别、专业、联系电话、职称等;项目信息,包括的数据项有:项目编号、项目名称、类型、参加人员、项目经费、实施时间等;参与项目信息,包括的数据项有:职工编号、项目编号、项目类别、作者排名、经费、获奖情况等。 项目合作信息的处理。 各种信息的添加、修改、删除。 按照某种条件,查询统计符合条件的各类信息。 对查询、统计的结果打印输出。
时间: 2023-10-20 22:51:59 浏览: 144
以下是一个使用Java Swing和JDBC连接MySQL数据库的示例,实现了基本信息录入、修改、查询等功能:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
public class InformationManagementSystem extends JFrame {
private JTextField employeeIdTextField, nameTextField, genderTextField, majorTextField, contactTextField, jobTitleTextField;
private JButton addButton, updateButton, deleteButton, queryButton, printButton;
private Connection connection;
private Statement statement;
public InformationManagementSystem() {
// 设置窗口标题
setTitle("信息管理系统");
// 设置窗口大小
setSize(400, 300);
// 设置窗口关闭时的操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置布局为边界布局
setLayout(new BorderLayout());
// 创建输入框和按钮组件
employeeIdTextField = new JTextField();
nameTextField = new JTextField();
genderTextField = new JTextField();
majorTextField = new JTextField();
contactTextField = new JTextField();
jobTitleTextField = new JTextField();
addButton = new JButton("添加");
updateButton = new JButton("修改");
deleteButton = new JButton("删除");
queryButton = new JButton("查询");
printButton = new JButton("打印");
// 添加按钮点击事件监听器
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
insertEmployee();
}
});
updateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateEmployee();
}
});
deleteButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
deleteEmployee();
}
});
queryButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
queryEmployees();
}
});
printButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
printResults();
}
});
// 创建面板,并将组件添加到面板中
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(7, 2));
panel.add(new JLabel("职工编号:"));
panel.add(employeeIdTextField);
panel.add(new JLabel("姓名:"));
panel.add(nameTextField);
panel.add(new JLabel("性别:"));
panel.add(genderTextField);
panel.add(new JLabel("专业:"));
panel.add(majorTextField);
panel.add(new JLabel("联系电话:"));
panel.add(contactTextField);
panel.add(new JLabel("职称:"));
panel.add(jobTitleTextField);
panel.add(addButton);
panel.add(updateButton);
panel.add(deleteButton);
panel.add(queryButton);
panel.add(printButton);
// 将面板添加到窗口中心位置
add(panel, BorderLayout.CENTER);
// 初始化数据库连接
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database_name", "your_username", "your_password");
statement = connection.createStatement();
System.out.println("成功连接到数据库!");
} catch (ClassNotFoundException | SQLException ex) {
ex.printStackTrace();
}
// 显示窗口
setVisible(true);
}
private void insertEmployee() {
String employeeId = employeeIdTextField.getText();
String name = nameTextField.getText();
String gender = genderTextField.getText();
String major = majorTextField.getText();
String contact = contactTextField.getText();
String jobTitle = jobTitleTextField.getText();
String query = "INSERT INTO employees (employee_id, name, gender, major, contact, job_title) VALUES ('" + employeeId + "', '" + name + "', '" + gender + "', '" + major + "', '" + contact + "', '" + jobTitle + "')";
try {
statement.executeUpdate(query);
System.out.println("成功添加职工信息!");
} catch (SQLException ex) {
ex.printStackTrace();
}
}
private void updateEmployee() {
String employeeId = employeeIdTextField.getText();
String name = nameTextField.getText();
String gender = genderTextField.getText();
String major = majorTextField.getText();
String contact = contactTextField.getText();
String jobTitle = jobTitleTextField.getText();
String query = "UPDATE employees SET name = '" + name + "', gender = '" + gender + "', major = '" + major + "', contact = '" + contact + "', job_title = '" + jobTitle + "' WHERE employee_id = '" + employeeId + "'";
try {
statement.executeUpdate(query);
System.out.println("成功修改职工信息!");
} catch (SQLException ex) {
ex.printStackTrace();
}
}
private void deleteEmployee() {
String employeeId = employeeIdTextField.getText();
String query = "DELETE FROM employees WHERE employee_id = '" + employeeId + "'";
try {
statement.executeUpdate(query);
System.out.println("成功删除职工信息!");
} catch (SQLException ex) {
ex.printStackTrace();
}
}
private void queryEmployees() {
String query = "SELECT * FROM employees";
try {
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()) {
String employeeId = resultSet.getString("employee_id");
String name = resultSet.getString("name");
String gender = resultSet.getString("gender");
String major = resultSet.getString("major");
String contact = resultSet.getString("contact");
String jobTitle = resultSet.getString("job_title");
System.out.println("职工编号: " + employeeId);
System.out.println("姓名: " + name);
System.out.println("性别: " + gender);
System.out.println("专业: " + major);
System.out.println("联系电话: " + contact);
System.out.println("职称: " + jobTitle);
System.out.println("--------------------");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
private void printResults() {
// 实现打印查询、统计结果的逻辑
// 您可以根据实际需求选择打印输出的方式,比如在文本框中显示结果或者生成报表等
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new InformationManagementSystem();
}
});
}
}
```
在上述示例中,请将以下部分替换为您自己的MySQL数据库连接信息:
```java
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database_name", "your_username", "your_password");
```
请确保已经导入正确的MySQL驱动程序,例如`mysql-connector-java-xxx.jar`。
请注意,上述示例只是一个简单的框架,您可以根据具体的业务逻辑和需求来完善系统的功能和交互。同时,在使用用户输入的数据时,请务必注意防止SQL注入攻击,并对用户输入进行适当的验证和过滤。