基本信息管理 基本信息管理包括删除员工信息和查询基础信息等操作。同时,也需要维护部门信息,包括增加、修改、删除和查询等操作。 删除员工信息(Delete Employee) 用户在输入区域中输入需要删除的员工的编号,系统会查询该员工的基本信息并在表单中展示。用户点击“确认”按钮后,系统会提示确认是否删除该员工信息。如果用户确认删除,则执行删除操作;否则取消删除操作。 查询员工信息(Query Employee) 提供两种查询方式:根据姓名查询和根据部门查询。用户可以在输入区域中选择需要查询的方式,并输入相关信息。系统会查询符合条件的所有员工信息并在输出区域中展示。 增加部门信息(Add Department) 在输入区域中展示一个表单,包含需要添加的部门的所有信息(一级部门名称、二级部门名称)。用户可以在表单中填写信息,并点击“确认”按钮完成添加操作。 修改部门信息(Modify Department) 用户先在输入区域中输入需要修改的部门的编号,系统会查询该部门 请用javaGUI与mysql的连接用代码实现上述问题
时间: 2024-03-12 22:46:30 浏览: 69
以下是使用Java GUI和MySQL连接实现基本信息管理的示例代码:
1. 建立数据库连接
在Java程序中,我们需要使用JDBC驱动程序来连接MySQL数据库。因此,我们需要下载并导入MySQL JDBC驱动包。我们还需要在MySQL中创建一个名为"employee_management"的数据库,并在其中创建两张表:employee和department。
在程序中,我们需要定义以下变量:
```java
private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver";
private static final String DB_URL = "jdbc:mysql://localhost:3306/employee_management";
private static final String DB_USERNAME = "root";
private static final String DB_PASSWORD = "password";
private Connection conn = null;
private Statement stmt = null;
```
然后,我们可以在程序初始化时建立数据库连接:
```java
public void init() {
try {
Class.forName(DB_DRIVER);
conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
stmt = conn.createStatement();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
```
2. 删除员工信息
在Java GUI中,我们可以使用JOptionPane.showConfirmDialog()方法来显示确认对话框。如果用户点击“确认”按钮,则返回值为0,否则为1。
下面是删除员工信息的代码:
```java
public void deleteEmployee(int id) {
try {
String query = "SELECT * FROM employee WHERE id=" + id;
ResultSet rs = stmt.executeQuery(query);
if (!rs.next()) {
JOptionPane.showMessageDialog(null, "该员工不存在!", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
String name = rs.getString("name");
int confirm = JOptionPane.showConfirmDialog(null, "确认删除员工 " + name + " 的信息吗?", "确认", JOptionPane.YES_NO_OPTION);
if (confirm == 0) {
String deleteQuery = "DELETE FROM employee WHERE id=" + id;
stmt.executeUpdate(deleteQuery);
JOptionPane.showMessageDialog(null, "员工 " + name + " 的信息已被删除。", "成功", JOptionPane.INFORMATION_MESSAGE);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
```
3. 查询员工信息
查询员工信息需要根据用户输入的条件构建SQL查询语句,并将查询结果显示在表格中。以下是查询员工信息的代码:
```java
public void queryEmployee(String name, String department) {
try {
String query = "SELECT * FROM employee WHERE 1=1";
if (!name.equals("")) {
query += " AND name LIKE '%" + name + "%'";
}
if (!department.equals("")) {
query += " AND department='" + department + "'";
}
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
int numColumns = rsmd.getColumnCount();
Vector<String> columnNames = new Vector<String>();
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
for (int i = 1; i <= numColumns; i++) {
columnNames.add(rsmd.getColumnName(i));
}
while (rs.next()) {
Vector<Object> row = new Vector<Object>();
for (int i = 1; i <= numColumns; i++) {
row.add(rs.getObject(i));
}
data.add(row);
}
JTable table = new JTable(data, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
JFrame frame = new JFrame("员工信息查询结果");
frame.getContentPane().add(scrollPane);
frame.pack();
frame.setVisible(true);
} catch (SQLException e) {
e.printStackTrace();
}
}
```
4. 增加部门信息
增加部门信息需要使用JOptionPane.showInputDialog()方法来获取用户输入的数据。然后,我们可以使用PreparedStatement对象来执行SQL插入语句,避免SQL注入攻击。
以下是增加部门信息的代码:
```java
public void addDepartment(String parentDepartment, String subDepartment) {
try {
String insertQuery = "INSERT INTO department (parent_department, sub_department) VALUES (?, ?)";
PreparedStatement ps = conn.prepareStatement(insertQuery);
ps.setString(1, parentDepartment);
ps.setString(2, subDepartment);
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "部门 " + parentDepartment + "/" + subDepartment + " 已添加。", "成功", JOptionPane.INFORMATION_MESSAGE);
} catch (SQLException e) {
e.printStackTrace();
}
}
```
5. 修改部门信息
修改部门信息需要先查询数据库中是否存在该部门,如果存在则使用JOptionPane.showInputDialog()方法获取用户输入的新数据,并使用PreparedStatement对象执行SQL更新语句。
以下是修改部门信息的代码:
```java
public void modifyDepartment(int id) {
try {
String query = "SELECT * FROM department WHERE id=" + id;
ResultSet rs = stmt.executeQuery(query);
if (!rs.next()) {
JOptionPane.showMessageDialog(null, "该部门不存在!", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
String parentDepartment = rs.getString("parent_department");
String subDepartment = rs.getString("sub_department");
String newParentDepartment = JOptionPane.showInputDialog(null, "请输入一级部门名称:", parentDepartment);
String newSubDepartment = JOptionPane.showInputDialog(null, "请输入二级部门名称:", subDepartment);
String updateQuery = "UPDATE department SET parent_department=?, sub_department=? WHERE id=?";
PreparedStatement ps = conn.prepareStatement(updateQuery);
ps.setString(1, newParentDepartment);
ps.setString(2, newSubDepartment);
ps.setInt(3, id);
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "部门信息已更新。", "成功", JOptionPane.INFORMATION_MESSAGE);
} catch (SQLException e) {
e.printStackTrace();
}
}
```
以上是使用Java GUI和MySQL连接实现基本信息管理的示例代码。请根据自己的实际需求进行修改和优化。
阅读全文