JSP实现MySQL管理

使用JSP实现MySQL数据库管理,需要结合JDBC技术和JSP页面交互功能。以下是关键步骤和示例代码:

一、基础环境准备

  1. 数据库配置:创建MySQL数据库(示例数据库名test_db
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE
);
  1. JDBC驱动:下载MySQL Connector/J并放入WEB-INF/lib/

二、核心功能实现

1. 数据库连接类 DBConnection.jsp
<%@ page import="java.sql.*" %>
<%!
    public Connection getConnection() throws SQLException {
        String url = "jdbc:mysql://localhost:3306/test_db?useSSL=false";
        String user = "root";
        String password = "your_password";
        return DriverManager.getConnection(url, user, password);
    }
%>
2. 数据查询功能 listUsers.jsp
<%@ include file="DBConnection.jsp" %>
<table border="1">
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Email</th>
    </tr>
    <%
        try (Connection conn = getConnection();
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT * FROM users")) {
            
            while (rs.next()) {
    %>
    <tr>
        <td><%= rs.getInt("id") %></td>
        <td><%= rs.getString("name") %></td>
        <td><%= rs.getString("email") %></td>
    </tr>
    <% 
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    %>
</table>
3. 数据插入功能 addUser.jsp
<%@ include file="DBConnection.jsp" %>
<%
    if ("POST".equals(request.getMethod())) {
        String name = request.getParameter("name");
        String email = request.getParameter("email");
        
        try (Connection conn = getConnection();
             PreparedStatement pstmt = conn.prepareStatement(
                 "INSERT INTO users (name, email) VALUES (?, ?)")) {
             
            pstmt.setString(1, name);
            pstmt.setString(2, email);
            pstmt.executeUpdate();
            response.sendRedirect("listUsers.jsp");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
%>
<form method="POST">
    Name: <input type="text" name="name"><br>
    Email: <input type="email" name="email"><br>
    <input type="submit" value="Add User">
</form>

三、高级功能扩展

  1. 分页查询
SELECT * FROM users LIMIT <%= (page-1)*pageSize %>, <%= pageSize %>
  1. 事务处理
<%
    try (Connection conn = getConnection()) {
        conn.setAutoCommit(false);
        // 执行多个SQL操作
        conn.commit();
    } catch (SQLException e) {
        conn.rollback();
    }
%>
  1. 连接池配置:在context.xml中添加:
<Resource 
    name="jdbc/testDB" 
    auth="Container"
    type="javax.sql.DataSource"
    maxTotal="100"
    maxIdle="30"
    driverClassName="com.mysql.cj.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/test_db"
/>

四、安全注意事项

  1. 防止SQL注入

    • 使用PreparedStatement替代字符串拼接
    PreparedStatement pstmt = conn.prepareStatement(
        "SELECT * FROM users WHERE email = ?");
    pstmt.setString(1, request.getParameter("email"));
    
  2. 输入验证

    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
    <c:if test="${fn:length(param.email) > 100}">
        <p>Email too long!</p>
    </c:if>
    
  3. 错误处理

    <%@ page errorPage="error.jsp" %>
    

五、部署运行

  1. 将JSP文件放入Tomcat的webapps/YourProject/
  2. 启动Tomcat服务器
  3. 访问 http://localhost:8080/YourProject/addUser.jsp

最佳实践建议

  1. 使用MVC模式分离业务逻辑(Servlet)和视图(JSP)
  2. 通过DAO模式封装数据库操作
  3. 重要操作添加权限验证
  4. 敏感数据使用HTTPS传输

完整项目结构示例:

WebContent/
├── WEB-INF/
│   ├── lib/mysql-connector-java-8.0.28.jar
│   └── web.xml
├── users/
│   ├── listUsers.jsp
│   ├── addUser.jsp
│   └── editUser.jsp
└── DBConnection.jsp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值