jsp+mysql+servlrt实现增删改查
时间: 2023-09-14 14:07:37 浏览: 171
jsp+servlet实现增删改查
这是一个比较常见的 Web 开发需求,需要使用 JSP、Servlet 和 MySQL 来实现增删改查功能。下面是一个简单的代码示例,帮助你了解如何实现这些功能。
首先,需要创建一个数据库表,用于存储需要查询、修改、删除的数据。例如,下面是一个简单的表结构:
```mysql
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
```
其中,id 是自增主键,username 和 password 分别用于存储用户名和密码。
接下来,需要创建 JSP 页面,用于显示查询结果和提供用户输入信息的表单。例如,下面是一个简单的 JSP 页面,显示所有用户信息:
```jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>User List</title>
</head>
<body>
<h1>User List</h1>
<table border="1">
<tr>
<th>ID</th>
<th>Username</th>
<th>Password</th>
<th>Action</th>
</tr>
<%
// 1. 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2. 建立连接
String url = "jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=utf8";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
// 3. 创建 Statement
Statement stmt = conn.createStatement();
// 4. 执行查询语句
ResultSet rs = stmt.executeQuery("SELECT * FROM user");
// 5. 遍历结果集
while (rs.next()) {
int id = rs.getInt("id");
String username = rs.getString("username");
String password = rs.getString("password");
%>
<tr>
<td><%=id%></td>
<td><%=username%></td>
<td><%=password%></td>
<td><a href="edit.jsp?id=<%=id%>">Edit</a> | <a href="delete.jsp?id=<%=id%>">Delete</a></td>
</tr>
<%
}
// 6. 关闭连接
rs.close();
stmt.close();
conn.close();
%>
</table>
<br>
<a href="add.jsp">Add User</a>
</body>
</html>
```
上面的代码中,使用了 JDBC 来连接 MySQL 数据库,查询所有用户信息,并显示在页面上。同时,还提供了链接到编辑和删除页面的链接。
接下来,需要创建 Servlet,用于处理用户提交的表单数据,并将数据保存到数据库中。例如,下面是一个简单的 Servlet,用于添加新用户:
```java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class AddUserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1. 处理请求参数
String username = request.getParameter("username");
String password = request.getParameter("password");
// 2. 连接数据库
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=utf8";
String user = "root";
String passwd = "123456";
conn = DriverManager.getConnection(url, user, passwd);
// 3. 执行 SQL
String sql = "INSERT INTO user(username, password) VALUES (?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
int rows = pstmt.executeUpdate();
// 4. 处理结果
if (rows > 0) {
response.sendRedirect("list.jsp");
} else {
response.sendRedirect("add.jsp");
}
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("add.jsp");
} finally {
// 5. 关闭连接
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
```
上面的代码中,使用了 JDBC 来连接 MySQL 数据库,将用户提交的数据保存到数据库中。如果保存成功,则跳转到显示所有用户信息的页面;否则,跳转回添加用户的页面。
最后,还需要创建对应的 JSP 页面,用于显示表单和处理用户提交的数据。例如,下面是一个简单的 JSP 页面,用于添加新用户:
```jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Add User</title>
</head>
<body>
<h1>Add User</h1>
<form action="add" method="post">
<label for="username">Username:</label>
<input type="text" name="username" required>
<br>
<label for="password">Password:</label>
<input type="password" name="password" required>
<br>
<input type="submit" value="Submit">
</form>
<br>
<a href="list.jsp">User List</a>
</body>
</html>
```
上面的代码中,使用了 JSP 的表单标签来创建表单,用户输入用户名和密码后,将数据提交到 AddUserServlet 进行处理。同时,还提供了链接到显示所有用户信息的页面的链接。
类似的,还需要创建编辑和删除用户的 JSP 页面和对应的 Servlet,用于实现修改和删除功能。以上是一个简单的 JSP、Servlet 和 MySQL 实现增删改查的示例,希望能对你有所帮助。
阅读全文