
代码从上至下:
UserDao:
java
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:
java
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:
java
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:
java
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:
java
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:
java
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:
java
<%@ 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:
java
<%--
Created by IntelliJ IDEA.
User: HP
Date: 2025/4/20
Time: 11:08
To 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:
java
<%@ 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:
至于数据库文件,非常简单,就三个字段:
java
-- 创建数据库
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)
);
运行截图如下: