jsp 语言 JSP 实现数据的增删改操作实践

JSP阿木 发布于 15 天前 3 次阅读


JSP 实现数据的增删改操作实践

JavaServer Pages(JSP)是一种动态网页技术,它允许开发者使用Java代码来生成HTML页面。JSP技术结合了Java的强类型语言特性和HTML的易用性,使得开发动态网页变得更加高效。本文将围绕JSP实现数据的增删改操作进行实践,通过一系列的示例代码,展示如何使用JSP和JavaBean来管理数据库中的数据。

环境准备

在开始实践之前,我们需要准备以下环境:

1. Java Development Kit(JDK):推荐使用JDK 8或更高版本。

2. Java EE Web服务器:如Apache Tomcat。

3. 数据库:如MySQL、Oracle等。

数据库设计

为了演示增删改操作,我们假设有一个简单的用户表(users):

sql

CREATE TABLE users (


id INT PRIMARY KEY AUTO_INCREMENT,


username VARCHAR(50) NOT NULL,


password VARCHAR(50) NOT NULL,


email VARCHAR(100)


);


创建JavaBean

我们需要创建一个JavaBean来表示用户表中的数据。这个JavaBean将包含用户的所有属性以及相应的getter和setter方法。

java

public class User {


private int id;


private String username;


private String password;


private String email;

// Getter 和 Setter 方法


public int getId() {


return id;


}

public void setId(int id) {


this.id = id;


}

public String getUsername() {


return username;


}

public void setUsername(String username) {


this.username = username;


}

public String getPassword() {


return password;


}

public void setPassword(String password) {


this.password = password;


}

public String getEmail() {


return email;


}

public void setEmail(String email) {


this.email = email;


}


}


创建数据访问对象(DAO)

接下来,我们需要创建一个数据访问对象(DAO)来处理与数据库的交互。这个对象将包含增删改查(CRUD)操作的方法。

java

import java.sql.;


import java.util.ArrayList;


import java.util.List;

public class UserDAO {


private Connection getConnection() throws SQLException {


String url = "jdbc:mysql://localhost:3306/your_database";


String user = "your_username";


String password = "your_password";


return DriverManager.getConnection(url, user, password);


}

public List<User> getAllUsers() {


List<User> users = new ArrayList<>();


String sql = "SELECT FROM users";


try (Connection conn = getConnection();


Statement stmt = conn.createStatement();


ResultSet rs = stmt.executeQuery(sql)) {


while (rs.next()) {


User user = new User();


user.setId(rs.getInt("id"));


user.setUsername(rs.getString("username"));


user.setPassword(rs.getString("password"));


user.setEmail(rs.getString("email"));


users.add(user);


}


} catch (SQLException e) {


e.printStackTrace();


}


return users;


}

public void addUser(User user) {


String sql = "INSERT INTO users (username, password, email) VALUES (?, ?, ?)";


try (Connection conn = getConnection();


PreparedStatement pstmt = conn.prepareStatement(sql)) {


pstmt.setString(1, user.getUsername());


pstmt.setString(2, user.getPassword());


pstmt.setString(3, user.getEmail());


pstmt.executeUpdate();


} catch (SQLException e) {


e.printStackTrace();


}


}

public void updateUser(User user) {


String sql = "UPDATE users SET username=?, password=?, email=? WHERE id=?";


try (Connection conn = getConnection();


PreparedStatement pstmt = conn.prepareStatement(sql)) {


pstmt.setString(1, user.getUsername());


pstmt.setString(2, user.getPassword());


pstmt.setString(3, user.getEmail());


pstmt.setInt(4, user.getId());


pstmt.executeUpdate();


} catch (SQLException e) {


e.printStackTrace();


}


}

public void deleteUser(int id) {


String sql = "DELETE FROM users WHERE id=?";


try (Connection conn = getConnection();


PreparedStatement pstmt = conn.prepareStatement(sql)) {


pstmt.setInt(1, id);


pstmt.executeUpdate();


} catch (SQLException e) {


e.printStackTrace();


}


}


}


创建JSP页面

现在,我们可以创建JSP页面来展示用户列表、添加新用户、编辑用户和删除用户。

用户列表页面(users.jsp)

jsp

<%@ page import="java.util.List" %>


<%@ page import="com.example.User" %>


<%@ page import="com.example.UserDAO" %>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<html>


<head>


<title>User List</title>


</head>


<body>


<h1>User List</h1>


<table border="1">


<tr>


<th>ID</th>


<th>Username</th>


<th>Password</th>


<th>Email</th>


<th>Actions</th>


</tr>


<%


UserDAO userDAO = new UserDAO();


List<User> users = userDAO.getAllUsers();


for (User user : users) {


%>


<tr>


<td><%= user.getId() %></td>


<td><%= user.getUsername() %></td>


<td><%= user.getPassword() %></td>


<td><%= user.getEmail() %></td>


<td>


<a href="edit.jsp?id=<%= user.getId() %>">Edit</a>


<a href="delete.jsp?id=<%= user.getId() %>">Delete</a>


</td>


</tr>


<%


}


%>


</table>


<a href="add.jsp">Add New User</a>


</body>


</html>


添加新用户页面(add.jsp)

jsp

<%@ page import="com.example.User" %>


<%@ page import="com.example.UserDAO" %>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<html>


<head>


<title>Add User</title>


</head>


<body>


<h1>Add User</h1>


<form action="add_process.jsp" method="post">


Username: <input type="text" name="username"><br>


Password: <input type="password" name="password"><br>


Email: <input type="email" name="email"><br>


<input type="submit" value="Add">


</form>


</body>


</html>


添加新用户处理页面(add_process.jsp)

jsp

<%@ page import="com.example.User" %>


<%@ page import="com.example.UserDAO" %>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<html>


<head>


<title>Add User Process</title>


</head>


<body>


<%


String username = request.getParameter("username");


String password = request.getParameter("password");


String email = request.getParameter("email");


User user = new User();


user.setUsername(username);


user.setPassword(password);


user.setEmail(email);


UserDAO userDAO = new UserDAO();


userDAO.addUser(user);


response.sendRedirect("users.jsp");


%>


</body>


</html>


编辑用户页面(edit.jsp)

jsp

<%@ page import="com.example.User" %>


<%@ page import="com.example.UserDAO" %>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<html>


<head>


<title>Edit User</title>


</head>


<body>


<h1>Edit User</h1>


<%


int id = Integer.parseInt(request.getParameter("id"));


UserDAO userDAO = new UserDAO();


User user = userDAO.getUserById(id);


%>


<form action="update_process.jsp" method="post">


Username: <input type="text" name="username" value="<%= user.getUsername() %>"><br>


Password: <input type="password" name="password" value="<%= user.getPassword() %>"><br>


Email: <input type="email" name="email" value="<%= user.getEmail() %>"><br>


<input type="hidden" name="id" value="<%= user.getId() %>">


<input type="submit" value="Update">


</form>


</body>


</html>


编辑用户处理页面(update_process.jsp)

jsp

<%@ page import="com.example.User" %>


<%@ page import="com.example.UserDAO" %>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<html>


<head>


<title>Update User Process</title>


</head>


<body>


<%


int id = Integer.parseInt(request.getParameter("id"));


String username = request.getParameter("username");


String password = request.getParameter("password");


String email = request.getParameter("email");


User user = new User();


user.setId(id);


user.setUsername(username);


user.setPassword(password);


user.setEmail(email);


UserDAO userDAO = new UserDAO();


userDAO.updateUser(user);


response.sendRedirect("users.jsp");


%>


</body>


</html>


删除用户页面(delete.jsp)

jsp

<%@ page import="com.example.UserDAO" %>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<html>


<head>


<title>Delete User</title>


</head>


<body>


<%


int id = Integer.parseInt(request.getParameter("id"));


UserDAO userDAO = new UserDAO();


userDAO.deleteUser(id);


response.sendRedirect("users.jsp");


%>


</body>


</html>


总结

通过以上示例,我们展示了如何使用JSP和JavaBean来实现数据的增删改操作。在实际项目中,你可能需要添加更多的功能,如用户认证、权限控制等。为了提高代码的可维护性和可扩展性,建议使用框架(如Spring MVC)来简化开发过程。希望本文能帮助你更好地理解JSP在数据管理方面的应用。