对JSP页执行SQL查询时遇到问题

idfiyjo8  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(146)

我正在尝试编写一些JAVA来发送SQL查询,然后将数据作为JSP页面中的表返回。JAVA中的代码本身可以很好地输出到控制台,但当我尝试将表放入JSP页面时,它会忽略它。
下面是我为JSP页面编写的代码:

<%@page import="entd481.week3_v2_miller.DB"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
     <body>
        
          <table align="center" cellpadding="5" cellspacing="5" border="1">
               <tr bgcolor="#A52A2A">
                    <td><b>Customer ID</b></td>
                    <td><b>First Name</b></td>
                    <td><b>Last Name</b></td>
                    <td><b>E-Mail</b></td>
                    <td><b>Phone</b></td>

                    <%       
                         String url = "jdbc:mysql://XXX.XXX.XXX.XX:XXXX/XXXXXXXX";
                         String username = "XXXXXXX";
                         String password = "XXXXXXXXX";
                         String query = "SELECT * FROM XXXXXXX.Customers;";
             
                         try {
                              Connection conn = DriverManager.getConnection(url, username, password);
                              Statement st = conn.createStatement();
                              ResultSet rs = st.executeQuery(query);
                              while (rs.next()) {
                                   String customerID = rs.getString("Customer_ID");
                                   String firstName = rs.getString("FirstName");
                                   String lastName = rs.getString("LastName");
                                   String email = rs.getString("email");
                                   String phoneNumber = rs.getString("PhoneNumber"); 
                
                                   out.print("<tr>");
                                   out.print("<td>" + customerID + "</td>");
                                   out.print("<td>" + firstName + "</td>");
                                   out.print("<td>" + lastName + "</td>");
                                   out.print("<td>" + email + "</td>");
                                   out.print("<td>" + phoneNumber + "</td>");
                                   out.print("</tr>");                 
                              }
                              st.close();
                              conn.close();
                         }   
                         catch (Exception e) {
                              System.out.println(e);            
                         }
                    %>
          </table>
     </body>
</html>

打印到控制台(从JAVA代码的Angular 来看)效果很好--获得了DB的所有内容。但是我很困惑,为什么当我运行这个程序时,结果页面的结果是空白的,而且我告诉它out.print的HTML都没有通过。
任何帮助都将不胜感激。

x6h2sr28

x6h2sr281#

pom.xml文件中缺少依赖项,已通过以下方法解决:

<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.39</version>
 </dependency>

然后,必须在JSP页面上另外添加以下代码以实现DB连接:

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

现在一切似乎都在运转。感谢@ DawooodibnKareem为我指明了正确的方向。

相关问题