You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java EE项目数据库数据获取函数失效,页面无数据显示求助

问题排查与修复方案

1. 数据库连接字符串语法错误

Noms类中getConnection调用存在语法错误,末尾缺失闭合双引号和括号:

// 错误代码
connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/javaee","root","";
// 修复后
connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/javaee","root","");

2. SQL查询字段拼写错误

查询语句中写的是prennom,但数据库表字段和实体类属性为prenom,拼写不一致导致无法读取数据:

// 错误代码
resultat = statement.executeQuery("Select nom, prennom from noms;");
// 修复后
resultat = statement.executeQuery("Select nom, prenom from noms;");

3. 异常捕获未打印日志

原代码catch (SQLException e)块为空,无法定位连接或查询阶段的异常,必须添加日志输出:

catch (SQLException e) {
    e.printStackTrace(); // 打印异常堆栈,快速定位问题
}

4. JSTL循环变量命名混淆

JSP中c:forEach的var使用了集合同名的utilisateurs,应改为单数utilisateur避免逻辑混乱:

<!-- 错误代码 -->
<c:forEach var="utilisateurs" items="${ utilisateurs }">
<!-- 修复后 -->
<c:forEach var="utilisateur" items="${ utilisateurs }">
    <li><c:out value="${ utilisateur.prenom }" /> <c:out value="${ utilisateur.nom }" /></li>
</c:forEach>

5. MySQL 8.0驱动时区配置

MySQL 8.0驱动需指定时区,否则可能连接失败,建议给JDBC URL添加时区参数:

connexion = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/javaee?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC",
    "root",
    ""
);

6. 可选:手动注册MySQL驱动类

部分环境下需手动加载驱动,在try块开头添加:

Class.forName("com.mysql.cj.jdbc.Driver");

额外检查项

  • 确认WampServer的MySQL服务正常运行,端口3306未被占用
  • 确认数据库javaee中的noms表存在,包含nom、prenom字段且有数据
  • 确认Servlet已正确配置(如添加@WebServlet("/bonjour")注解或在web.xml中配置映射)
  • 确认mysql-connector-java-8.0.30.jar已放入项目WEB-INF/lib目录

内容的提问来源于stack exchange,提问作者Dayvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 02:30:54