代码从上至下:
UserDao:
package dao;import entity.User;
import util.JDBCUtil;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;public class UserDao {public void addUser(User user) {String sql = "INSERT INTO user(name, age, gender) VALUES (?, ?, ?)";Connection conn = null;PreparedStatement pstmt = null;try {conn = JDBCUtil.getConnection();pstmt = conn.prepareStatement(sql);pstmt.setString(1, user.getName());pstmt.setInt(2, user.getAge());pstmt.setString(3, user.getGender());System.out.println(pstmt.toString());pstmt.executeUpdate();} catch (SQLException e) {System.out.println("添加用户失败: " + e.getMessage());} finally {JDBCUtil.close(conn, pstmt, null);}}public List<User> getAllUsers() {List<User> userList = new ArrayList<>();String sql = "SELECT name, age, gender FROM user";Connection conn = null;PreparedStatement pstmt = null;ResultSet rs = null;try {conn = JDBCUtil.getConnection();pstmt = conn.prepareStatement(sql);rs = pstmt.executeQuery();while (rs.next()) {User user = new User();user.setName(rs.getString("name"));user.setAge(rs.getInt("age"));user.setGender(rs.getString("gender"));userList.add(user);}return userList;} catch (SQLException e) {System.out.println("查询用户列表失败: " + e.getMessage());return null;} finally {JDBCUtil.close(conn, pstmt, rs);}}
}
User:
package entity;public class User {private String name;private int age;private String gender;public User() {}public User(String name, int age, String gender) {this.name = name;this.age = age;this.gender = gender;}public String getName() { return name; }public void setName(String name) { this.name = name; }public int getAge() { return age; }public void setAge(int age) { this.age = age; }public String getGender() { return gender; }public void setGender(String gender) { this.gender = gender; }public String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +", gender='" + gender + '\'' +'}';}
}
UserService:
package service;import dao.UserDao;
import entity.User;import java.util.List;public class UserService {UserDao userDao = new UserDao();public void addUser(User user) {userDao.addUser(user);}public List<User> getAllUsers() {return userDao.getAllUsers();}
}
AddUserServlet:
package service;import dao.UserDao;
import entity.User;import java.util.List;public class UserService {UserDao userDao = new UserDao();public void addUser(User user) {userDao.addUser(user);}public List<User> getAllUsers() {return userDao.getAllUsers();}
}
ShowUserServlet:
package servlet;import entity.User;
import service.UserService;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;@WebServlet("/showUsers")
public class ShowUserServlet extends HttpServlet {UserService userService = new UserService();protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {List<User> userList = userService.getAllUsers();request.setAttribute("userList", userList);request.getRequestDispatcher("/showUsers.jsp").forward(request, response);}
}
JDBCUtil:
package util;import java.sql.*;public class JDBCUtil {// 直接在代码中配置数据库连接信息(不推荐生产环境使用)private static final String URL = "jdbc:mysql://localhost:3306/你的数据库名字?useSSL=false&serverTimezone=UTC&characterEncoding=utf8";private static final String USER = "你的mysql用户名";private static final String PASSWORD = "你的mysql密码";private static final String DRIVER = "com.mysql.cj.jdbc.Driver";static {try {Class.forName(DRIVER);} catch (ClassNotFoundException e) {System.out.println("数据库驱动加载失败: " + e.getMessage());}}public static Connection getConnection() throws SQLException {return DriverManager.getConnection(URL, USER, PASSWORD);}public static void close(Connection conn, Statement stmt, ResultSet rs) {try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); }try { if (stmt != null) stmt.close(); } catch (SQLException e) { e.printStackTrace(); }try { if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); }}
}
前端jsp页面:
addUser.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>添加用户</title>
</head>
<body>
<h2>添加新用户</h2>
<form method="post">姓名:<input type="text" name="name" required><br>年龄:<input type="number" name="age" required><br>性别:<input type="text" name="gender" required><br><button type="submit">提交</button>
</form>
</body>
</html>
index.jsp:
<%--Created by IntelliJ IDEA.User: HPDate: 2025/4/20Time: 11:08To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>欢迎页</title><style>body {font-family: Arial, sans-serif;text-align: center;padding-top: 100px;}button {padding: 15px 30px;font-size: 18px;background-color: #007BFF;color: white;border: none;border-radius: 5px;cursor: pointer;transition: background-color 0.3s;}button:hover {background-color: #0056b3;}</style>
</head>
<body>
<h2>欢迎使用用户管理系统</h2>
<button onclick="window.location.href='addUser'">点击添加新用户
</button>
</body>
</html>
showUsers.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head><title>用户列表</title>
</head>
<body>
<h2>用户列表</h2>
<table border="1"><tr><th>姓名</th><th>年龄</th><th>性别</th></tr><c:forEach items="${userList}" var="user"><tr><td>${user.name}</td><td>${user.age}</td><td>${user.gender}</td></tr></c:forEach>
</table>
</body>
</html>
数据库用的mysql:
至于数据库文件,非常简单,就三个字段:
-- 创建数据库
CREATE DATABASE IF NOT EXISTS test_db CHARACTER SET utf8;
USE test_db;-- 创建用户表
CREATE TABLE user (name VARCHAR(50) NOT NULL,age INT,gender VARCHAR(10)
);
运行截图如下: