在IT领域,数据库管理和网页开发是两个至关重要的部分。在这个案例中,我们将深入探讨如何使用Java Server Pages (JSP) 对MySQL数据库中的员工表进行基本的CRUD(创建Create、读取Read、更新Update、删除Delete)操作。下面将详细阐述整个过程。
我们需要在MySQL数据库中创建一个员工表。这可以通过执行SQL脚本来完成。`脚本.txt`文件很可能包含了创建员工表的SQL语句,例如:
```sql
CREATE DATABASE IF NOT EXISTS employeeDB;
USE employeeDB;
CREATE TABLE IF NOT EXISTS Employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
position VARCHAR(50),
salary DECIMAL(10,2),
hire_date DATE
);
```
这个脚本创建了一个名为`employeeDB`的数据库,并在其中定义了一个`Employees`表,包含员工ID、姓名、职位、薪水和入职日期等字段。
接下来,我们将使用JSP来实现对这个表的CRUD操作。JSP是一种动态网页技术,它允许我们在HTML中嵌入Java代码,以实现服务器端的数据处理。
1. **创建(Create)**:用户通过网页表单输入新员工的信息,点击提交按钮,JSP页面接收到数据,使用PreparedStatement防止SQL注入,然后执行INSERT语句将数据插入到`Employees`表中。
```jsp
<%
String name = request.getParameter("name");
String position = request.getParameter("position");
double salary = Double.parseDouble(request.getParameter("salary"));
Date hireDate = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("hire_date"));
// 连接数据库
Connection conn = ...; // 数据库连接代码
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO Employees (name, position, salary, hire_date) VALUES (?, ?, ?, ?)");
pstmt.setString(1, name);
pstmt.setString(2, position);
pstmt.setDouble(3, salary);
pstmt.setDate(4, new java.sql.Date(hireDate.getTime()));
pstmt.executeUpdate();
%>
```
2. **读取(Read)**:展示所有员工信息,可以使用Statement或PreparedStatement查询数据库,然后在JSP中输出结果。
```jsp
<%
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Employees");
while (rs.next()) {
out.println("ID: " + rs.getInt("id") + "<br>");
out.println("Name: " + rs.getString("name") + "<br>");
out.println("Position: " + rs.getString("position") + "<br>");
out.println("Salary: " + rs.getDouble("salary") + "<br>");
out.println("Hire Date: " + rs.getDate("hire_date") + "<br><br>");
}
%>
```
3. **更新(Update)**:用户选择要修改的员工并提交更改,JSP接收请求,找到相应的记录,更新字段,最后执行UPDATE语句。
```jsp
<%
int id = Integer.parseInt(request.getParameter("id"));
String newName = request.getParameter("name");
String newPosition = request.getParameter("position");
double newSalary = Double.parseDouble(request.getParameter("salary"));
String sql = "UPDATE Employees SET name=?, position=?, salary=? WHERE id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, newName);
pstmt.setString(2, newPosition);
pstmt.setDouble(3, newSalary);
pstmt.setInt(4, id);
pstmt.executeUpdate();
%>
```
4. **删除(Delete)**:用户选择要删除的员工,JSP接收请求,执行DELETE语句移除该记录。
```jsp
<%
int id = Integer.parseInt(request.getParameter("id"));
String sql = "DELETE FROM Employees WHERE id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();
%>
```
在实际应用中,还需要考虑错误处理、安全性、用户体验等方面。例如,使用连接池管理数据库连接,使用MVC架构分离业务逻辑和视图,以及使用Ajax进行无刷新操作等。这些是JSP与MySQL结合进行Web开发时的基本知识点,通过学习和实践,你可以创建更复杂、更健壮的数据库驱动的Web应用。
- 1
- 2
- 3
前往页