JSP技术实现CRUD
时间: 2024-04-30 21:22:04 浏览: 89
JSP(JavaServer Pages)是一种动态网页开发技术,可以与Java语言相结合,实现动态生成HTML网页。CRUD(Create, Read, Update, Delete)是指对于数据库中的数据进行增加、查询、修改和删除操作。以下是使用JSP实现CRUD的基本步骤:
1. 创建数据库表格及相关的JavaBean类来表示数据对象。
2. 创建JSP页面来实现用户交互界面,包括增加、查询、修改和删除操作,可以使用HTML表单来收集用户输入数据。
3. 在JSP页面中使用JDBC连接数据库,执行SQL语句对数据库进行增删改查操作。
4. 将查询结果以HTML表格的形式展示给用户。
下面是一个简单的示例,演示如何使用JSP技术实现对学生信息的增加、查询、修改和删除操作。
1. 创建数据库表格和JavaBean类
假设我们有一个名为“student”的数据库表格,其中包括以下字段:
- id:学生ID
- name:学生姓名
- age:学生年龄
- gender:学生性别
我们可以创建一个名为“Student”的JavaBean类来表示学生信息,代码如下:
```java
public class Student {
private int id;
private String name;
private int age;
private String gender;
// 构造函数和get/set方法省略
}
```
2. 创建JSP页面
我们可以创建一个名为“student.jsp”的JSP页面来实现学生信息的增加、查询、修改和删除操作。下面是一个简单的示例代码:
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="com.example.Student" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Student Management</title>
</head>
<body>
<h1>Student Management System</h1>
<%! // 定义数据库连接信息
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "root";
%>
<%
// 获取操作参数
String action = request.getParameter("action");
// 增加学生信息
if (action != null && action.equals("add")) {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
// 连接数据库,执行插入操作
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
String sql = "INSERT INTO student(name, age, gender) VALUES(?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setInt(2, age);
ps.setString(3, gender);
ps.executeUpdate();
// 返回学生列表页面
response.sendRedirect("student.jsp");
}
// 查询学生信息
else if (action != null && action.equals("search")) {
String name = request.getParameter("name");
// 连接数据库,执行查询操作
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
String sql = "SELECT * FROM student WHERE name LIKE ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "%" + name + "%");
ResultSet rs = ps.executeQuery();
// 将查询结果转换为JavaBean列表
List<Student> studentList = new ArrayList<Student>();
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setAge(rs.getInt("age"));
student.setGender(rs.getString("gender"));
studentList.add(student);
}
// 将JavaBean列表传递到页面进行展示
request.setAttribute("studentList", studentList);
request.getRequestDispatcher("student_list.jsp").forward(request, response);
}
// 删除学生信息
else if (action != null && action.equals("delete")) {
int id = Integer.parseInt(request.getParameter("id"));
// 连接数据库,执行删除操作
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
String sql = "DELETE FROM student WHERE id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ps.executeUpdate();
// 返回学生列表页面
response.sendRedirect("student.jsp");
}
%>
<h2>Add Student</h2>
<form action="student.jsp?action=add" method="post">
Name: <input type="text" name="name"><br>
Age: <input type="text" name="age"><br>
Gender: <input type="radio" name="gender" value="M">Male
<input type="radio" name="gender" value="F">Female<br>
<input type="submit" value="Add">
</form>
<h2>Search Student</h2>
<form action="student.jsp?action=search" method="post">
Name: <input type="text" name="name"><br>
<input type="submit" value="Search">
</form>
</body>
</html>
```
在上面的代码中,我们定义了一个数据库连接信息和三个操作:增加学生信息、查询学生信息和删除学生信息。对于增加和删除操作,我们使用了重定向来返回学生列表页面;对于查询操作,我们使用了JSP的forward方法来将查询结果传递到另一个JSP页面“student_list.jsp”进行展示。
3. 创建学生列表页面
我们可以创建一个名为“student_list.jsp”的JSP页面来展示查询结果。下面是一个简单的示例代码:
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ page import="com.example.Student" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Student List</title>
</head>
<body>
<h1>Student List</h1>
<%
// 获取学生列表信息
List<Student> studentList = (List<Student>) request.getAttribute("studentList");
%>
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>Gender</th>
<th>Action</th>
</tr>
<% for (Student student : studentList) { %>
<tr>
<td><%= student.getId() %></td>
<td><%= student.getName() %></td>
<td><%= student.getAge() %></td>
<td><%= student.getGender() %></td>
<td>
<a href="student.jsp?action=delete&id=<%= student.getId() %>">Delete</a>
</td>
</tr>
<% } %>
</table>
</body>
</html>
```
在上面的代码中,我们使用了JSP的EL表达式来展示查询结果,并为每个学生信息提供了一个“Delete”链接,用于执行删除操作。
通过以上步骤,我们就可以使用JSP技术实现对学生信息的增加、查询、修改和删除操作。当然,这只是一个简单的示例,实际应用中还需要考虑安全性、性能等方面的问题。
阅读全文