0

我正在创建我的第一个 java web 应用程序。实际上我面临的问题是在ManageAllStudents中。从数据库中检索后,它应该显示学生的信息列表。

我正在使用下面的代码,但它不显示信息或不从数据库中检索信息。

请指导我我所缺少的。这是我的代码:

 <% try {
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          String url =  "jdbc:odbc:stdProjectDataDSN";
          Connection c = DriverManager.getConnection(url);
          String sql = "Select * from students ORDER BY ID DESC";
          PreparedStatement pStmt = c.prepareStatement(sql);  
          ResultSet rs = pStmt.executeQuery(sql);

          while (rs.next()) {
 %>
           <tr height="40">   
               <th> <%=rs.getString("ID")%> </th>
               <th> <%=rs.getString("Name")%> </th>
               <th> <%=rs.getString("RollNumber")%> </th>
               <th> <%=rs.getString("PhoneNumber")%> </th>
               <th> <%=rs.getString("StudyProgram")%> </th>
               <th> <%=rs.getString("Status")%> </th>
               <th> <a href="ManageAllStudent.jsp">update</a> </th>
               <th> <a href="ManageAllStudent.jsp">delete</a> </th> 
           </tr>
 <%
         }
         rs.close();
         pStmt.close();
         c.close();
     }
     catch (Exception e) {
     }
 %>
4

2 回答 2

1
PreparedStatement pStmt = c.prepareStatement(sql);  
ResultSet rs = pStmt.executeQuery();

没有理由称executeQuery(sql)您已经使用PreparedStatement. 可能问题就在这里。所以尝试改变。

其次,你必须close()在块中调用方法,finally因为如果它会崩溃,catch块会被调用,但你的close()方法不会。

Finally块保证将始终被调用。


更新: 您需要避免在 JSP 文件中编写原始 java 代码。检查这个

于 2012-06-28T17:23:59.927 回答
1

我得到了我所缺少的我没有在控制面板->管理工具中配置我的数据库...

所以当我设置它时它就可以工作:)

特别感谢所有@hawaii.five-0,他们给了我一个美妙而有用的建议

于 2012-06-28T19:03:26.013 回答