在JSP页面实现增删改查(CRUD)操作通常涉及以下几个步骤:
import java.sql.*;
public class DBConnection {
public static Connection getConnection() throws SQLException {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "username";
String password = "password";
return DriverManager.getConnection(url, user, password);
}
}<%@ page import="java.sql.*" %>
<form action="AddUserServlet" method="post">
Name: <input type="text" name="name"><br>
Email: <input type="text" name="email"><br>
<input type="submit" value="Add User">
</form>import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class AddUserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String email = request.getParameter("email");
try (Connection conn = DBConnection.getConnection()) {
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, email);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
response.sendRedirect("UserList.jsp");
}
}<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<table border="1">
<tr><th>Name</th><th>Email</th><th>Actions</th></tr>
<%
try (Connection conn = DBConnection.getConnection()) {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
while (rs.next()) {
String name = rs.getString("name");
String email = rs.getString("email");
%>
<tr>
<td><%= name %></td>
<td><%= email %></td>
<td>
<a href="EditUser.jsp?id=<%= rs.getInt("id") %>">Edit</a>
<a href="DeleteUserServlet?id=<%= rs.getInt("id") %>">Delete</a>
</td>
</tr>
<% }
} catch (SQLException e) {
e.printStackTrace();
} %>
</table><%@ page import="java.sql.*" %>
<%
int id = Integer.parseInt(request.getParameter("id"));
String name = "";
String email = "";
try (Connection conn = DBConnection.getConnection()) {
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE id=?");
pstmt.setInt(1, id);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
name = rs.getString("name");
email = rs.getString("email");
}
} catch (SQLException e) {
e.printStackTrace();
}
%>
<form action="UpdateUserServlet" method="post">
<input type="hidden" name="id" value="<%= id %>">
Name: <input type="text" name="name" value="<%= name %>"><br>
Email: <input type="text" name="email" value="<%= email %>"><br>
<input type="submit" value="Update User">
</form>import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class UpdateUserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
String email = request.getParameter("email");
try (Connection conn = DBConnection.getConnection()) {
String sql = "UPDATE users SET name=?, email=? WHERE id=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, email);
pstmt.setInt(3, id);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
response.sendRedirect("UserList.jsp");
}
}import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class DeleteUserServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
try (Connection conn = DBConnection.getConnection()) {
String sql = "DELETE FROM users WHERE id=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
response.sendRedirect("UserList.jsp");
}
}PreparedStatement而不是Statement来防止SQL注入。通过以上步骤和示例代码,可以在JSP页面实现基本的增删改查功能。
没有搜到相关的文章