Javaweb实现增删改查
时间: 2023-09-20 09:08:43 浏览: 222
Javaweb 实现增删改查是 Web 开发中非常基础的操作,通常使用的是 Java Servlet 和 JSP 技术。
以下是一个简单的示例,实现了一个学生信息管理系统的增删改查功能:
1. 创建数据库表
首先,我们需要在数据库中创建一个表来存储学生信息。例如,我们可以创建一个名为 `student` 的表,包含以下字段:
```
id int 学生编号
name varchar 学生姓名
gender varchar 学生性别
age int 学生年龄
```
2. 创建 JavaBean
为了方便操作学生信息,我们可以创建一个 JavaBean 来表示学生对象:
```java
public class Student {
private int id;
private String name;
private String gender;
private int age;
// 省略 getter 和 setter 方法
}
```
3. 创建 DAO 类
DAO(Data Access Object)是数据访问对象,用于封装对数据库的访问操作。我们可以创建一个 `StudentDAO` 类来实现对学生信息的增删改查操作。
```java
public class StudentDAO {
// 数据库连接参数
private String url = "jdbc:mysql://localhost:3306/test";
private String username = "root";
private String password = "123456";
// 增加学生信息
public void add(Student student) {
try {
// 连接数据库
Connection conn = DriverManager.getConnection(url, username, password);
// SQL 语句
String sql = "INSERT INTO student(id, name, gender, age) VALUES (?, ?, ?, ?)";
// 预编译 SQL 语句
PreparedStatement pstmt = conn.prepareStatement(sql);
// 设置参数
pstmt.setInt(1, student.getId());
pstmt.setString(2, student.getName());
pstmt.setString(3, student.getGender());
pstmt.setInt(4, student.getAge());
// 执行 SQL 语句
pstmt.executeUpdate();
// 关闭连接
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 删除学生信息
public void delete(int id) {
try {
// 连接数据库
Connection conn = DriverManager.getConnection(url, username, password);
// SQL 语句
String sql = "DELETE FROM student WHERE id = ?";
// 预编译 SQL 语句
PreparedStatement pstmt = conn.prepareStatement(sql);
// 设置参数
pstmt.setInt(1, id);
// 执行 SQL 语句
pstmt.executeUpdate();
// 关闭连接
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 修改学生信息
public void update(Student student) {
try {
// 连接数据库
Connection conn = DriverManager.getConnection(url, username, password);
// SQL 语句
String sql = "UPDATE student SET name = ?, gender = ?, age = ? WHERE id = ?";
// 预编译 SQL 语句
PreparedStatement pstmt = conn.prepareStatement(sql);
// 设置参数
pstmt.setString(1, student.getName());
pstmt.setString(2, student.getGender());
pstmt.setInt(3, student.getAge());
pstmt.setInt(4, student.getId());
// 执行 SQL 语句
pstmt.executeUpdate();
// 关闭连接
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 查询学生信息
public List<Student> query() {
List<Student> list = new ArrayList<>();
try {
// 连接数据库
Connection conn = DriverManager.getConnection(url, username, password);
// SQL 语句
String sql = "SELECT * FROM student";
// 创建 Statement 对象
Statement stmt = conn.createStatement();
// 执行 SQL 语句
ResultSet rs = stmt.executeQuery(sql);
// 处理结果集
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setGender(rs.getString("gender"));
student.setAge(rs.getInt("age"));
list.add(student);
}
// 关闭连接
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
```
4. 创建 Servlet 类
Servlet 类是 Web 应用程序的控制器,用于接收和处理 HTTP 请求。我们可以创建一个 `StudentServlet` 类来实现学生信息的增删改查功能。
```java
@WebServlet("/student")
public class StudentServlet extends HttpServlet {
private StudentDAO dao = new StudentDAO();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String action = req.getParameter("action");
if ("add".equals(action)) {
add(req, resp);
} else if ("delete".equals(action)) {
delete(req, resp);
} else if ("update".equals(action)) {
update(req, resp);
} else {
query(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
// 增加学生信息
private void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id = Integer.parseInt(req.getParameter("id"));
String name = req.getParameter("name");
String gender = req.getParameter("gender");
int age = Integer.parseInt(req.getParameter("age"));
Student student = new Student();
student.setId(id);
student.setName(name);
student.setGender(gender);
student.setAge(age);
dao.add(student);
resp.sendRedirect("student");
}
// 删除学生信息
private void delete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id = Integer.parseInt(req.getParameter("id"));
dao.delete(id);
resp.sendRedirect("student");
}
// 修改学生信息
private void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id = Integer.parseInt(req.getParameter("id"));
String name = req.getParameter("name");
String gender = req.getParameter("gender");
int age = Integer.parseInt(req.getParameter("age"));
Student student = new Student();
student.setId(id);
student.setName(name);
student.setGender(gender);
student.setAge(age);
dao.update(student);
resp.sendRedirect("student");
}
// 查询学生信息
private void query(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Student> list = dao.query();
req.setAttribute("list", list);
req.getRequestDispatcher("student.jsp").forward(req, resp);
}
}
```
5. 创建 JSP 页面
JSP(JavaServer Pages)页面用于呈现 HTML 页面,并与 Servlet 进行交互。我们可以创建一个 `student.jsp` 页面来显示学生信息列表,并提供添加、删除和修改学生信息的表单。
```html
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生信息管理系统</title>
</head>
<body>
<h1>学生信息列表</h1>
<table border="1">
<thead>
<tr>
<th>学生编号</th>
<th>学生姓名</th>
<th>学生性别</th>
<th>学生年龄</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${list}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.gender}</td>
<td>${student.age}</td>
<td>
<a href="student?action=delete&id=${student.id}">删除</a>
<a href="update.jsp?id=${student.id}&name=${student.name}&gender=${student.gender}&age=${student.age}">修改</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<hr>
<h1>添加学生信息</h1>
<form action="student?action=add" method="post">
<table>
<tr>
<td>学生编号:</td>
<td><input type="text" name="id" required></td>
</tr>
<tr>
<td>学生姓名:</td>
<td><input type="text" name="name" required></td>
</tr>
<tr>
<td>学生性别:</td>
<td>
<input type="radio" name="gender" value="男" required>男
<input type="radio" name="gender" value="女" required>女
</td>
</tr>
<tr>
<td>学生年龄:</td>
<td><input type="text" name="age" required></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="添加"></td>
</tr>
</table>
</form>
</body>
</html>
```
6. 部署项目
最后,我们需要将项目部署到 Web 服务器中。可以使用 Tomcat 或者 Jetty 等 Web 服务器来运行项目。
部署完成后,在浏览器中访问 `http://localhost:8080/项目名/student` 即可打开学生信息管理系统,并进行增删改查操作。
阅读全文