利用JDBC连接数据库创建一个员工信息系统并实现基本的增删改查
时间: 2024-03-20 16:40:25 浏览: 16
好的,下面是一个简单的员工信息系统的示例,包括了基本的增删改查操作:
1. 首先,我们需要建立一个名为 `Employee` 的实体类,用于表示员工信息:
```java
public class Employee {
private int id;
private String name;
private int age;
private String gender;
public Employee(int id, String name, int age, String gender) {
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
}
```
2. 接下来,我们需要建立一个名为 `EmployeeDao` 的 DAO 类,用于实现对员工信息的增删改查操作。在该类中,我们需要建立连接数据库的方法以及对应的增删改查方法:
```java
public class EmployeeDao {
private Connection conn;
public EmployeeDao() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/employees", "root", "password");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
public void add(Employee employee) {
try {
PreparedStatement ps = conn.prepareStatement("INSERT INTO employee VALUES (?, ?, ?, ?)");
ps.setInt(1, employee.getId());
ps.setString(2, employee.getName());
ps.setInt(3, employee.getAge());
ps.setString(4, employee.getGender());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void delete(int id) {
try {
PreparedStatement ps = conn.prepareStatement("DELETE FROM employee WHERE id = ?");
ps.setInt(1, id);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void update(Employee employee) {
try {
PreparedStatement ps = conn.prepareStatement("UPDATE employee SET name = ?, age = ?, gender = ? WHERE id = ?");
ps.setString(1, employee.getName());
ps.setInt(2, employee.getAge());
ps.setString(3, employee.getGender());
ps.setInt(4, employee.getId());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public Employee getById(int id) {
try {
PreparedStatement ps = conn.prepareStatement("SELECT * FROM employee WHERE id = ?");
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
return new Employee(rs.getInt("id"), rs.getString("name"), rs.getInt("age"), rs.getString("gender"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public List<Employee> getAll() {
List<Employee> employees = new ArrayList<>();
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM employee");
while (rs.next()) {
employees.add(new Employee(rs.getInt("id"), rs.getString("name"), rs.getInt("age"), rs.getString("gender")));
}
} catch (SQLException e) {
e.printStackTrace();
}
return employees;
}
}
```
3. 最后,我们可以在 `main` 方法中调用 `EmployeeDao` 的方法来执行相应的操作:
```java
public static void main(String[] args) {
EmployeeDao dao = new EmployeeDao();
// 添加员工信息
dao.add(new Employee(1, "张三", 20, "男"));
// 获取指定 ID 的员工信息
Employee employee = dao.getById(1);
System.out.println(employee.getName() + " " + employee.getAge() + " " + employee.getGender());
// 修改员工信息
dao.update(new Employee(1, "李四", 22, "女"));
// 删除员工信息
dao.delete(1);
// 获取所有的员工信息
List<Employee> employees = dao.getAll();
for (Employee e : employees) {
System.out.println(e.getName() + " " + e.getAge() + " " + e.getGender());
}
}
```
以上就是一个简单的基于 JDBC 的员工信息系统的示例,您可以根据自己的需求进行相应的修改和优化。