如何使用jsp从表中检索数据?

时间:2018-12-03 19:02:33

标签: java jsp servlets mysql-workbench

我正在尝试从问题表中检索数据,但是以下代码未显示输出。

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="java.sql.*" %>


<%  
Connection con = null;  
Statement st   = null;
ResultSet rs   = null;

try{
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/users","root", "1234");
String qry = "SELECT * FROM questions";
rs = st.executeQuery(qry);

while(rs.next()){
   out.println("Email :" + rs.getString(2) + "<br>");
   out.println("Title :" + rs.getString(3) + "<br>");
   out.println("Description :" + rs.getString(4) +"<br>");
}
}
catch(Exception ex){}
%>    

questions table screenshot

Screenshot of output

1 个答案:

答案 0 :(得分:0)

out.println是什么?那不是您使用scriptlet输出的方式。它应该看起来像这样:

        while(rs.next()){
           %>
           <%="Email :" + rs.getString(2) + "<br>"%>
           <%="Title :" + rs.getString(3) + "<br>"%>
           <%="Description :" + rs.getString(4) +"<br>"%>
           <%
        }

大多数人会说不要以脚本开头。

如果这不能解决问题,则可能是您捕获了异常。尝试输出如下异常:

   catch(Exception ex){%><%=ex.toString()%><%}

看起来您有java.lang.NullPointerException,因此您必须弄清楚要使用的对象为null。查看您的代码,似乎您从未初始化Statement st。尝试在st = con.createStatement()

行之后添加con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/users","root", "1234");