2017-04-22 40 views
-1

最近我開始學習Java技術,現在我對Servlet的工作,而我取從數據的基礎上它沒有解決結果集RS 這裏我重視我的代碼數據結果集RS不能得到解決

<%@page import="java.sql.ResultSet"%> 
<%@page import="java.sql.PreparedStatement"%> 
<%@page import="java.sql.DriverManager"%> 
<%@page import="java.sql.Connection"%> 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<html> 
<script 
type="text/javascript" language="javascript">  
javascript:window.history.forward(1); 
</script> 

<% 
response.setHeader("Pragma","no-cache"); 
response.setHeader("Cache-Control","no-store"); 
response.setHeader("Expires","0"); 
response.setDateHeader("Expires",-1); 
%> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<a href="update.jsp">update</a> 
<a href="delete.jsp">display</a> 
<a href="logout.jsp">logout</a> 
<script> 
    <% 
    try{ 
     ResultSet rs=null; 
     String mail=(String)session.getAttribute("mail"); 
     String sql="select * from tempregister where mail=?"; 
     Class.forName("com.ibm.db2.DB2Driver"); 
     Connection con=DriverManager.getConnection("jdbc:db2://localhost:50000/TEMP", "tarun", "12347890"); 
     PreparedStatement ps=con.prepareStatement(sql); 
    ps.setString(1, mail); 
    rs=ps.executeQuery(); 


    }catch(Exception e){ 

    } 
    %> 


    <% 
    while(rs.next()) 
    { 

    %> 
<%=rs.getString(4)%> 


<% 
    } 
} 
catch(Exception e) 
{ 
e.printStackTrace(); 
}%> 

</script> 
</a> 


</body> 
</html> 

請幫我..謝謝

+0

請提供異常的'StackTrace'。 –

+0

'rs'在'try'塊內聲明,所以當塊結束時它不存在(超出範圍),並且'while(rs.next())'在塊之外,導致*編譯*錯誤。 – Andreas

+0

感謝您的迴應sir ..先生後來我刪除了try {}之後的catch塊,即使數據沒有被提取到html頁面 –

回答

1

您的代碼至少應該被改變:

<%@page import="java.sql.ResultSet"%> 
<%@page import="java.sql.PreparedStatement"%> 
<%@page import="java.sql.DriverManager"%> 
<%@page import="java.sql.Connection"%> 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<html> 
<script 
type="text/javascript" language="javascript">  
javascript:window.history.forward(1); 
</script> 

<% 
response.setHeader("Pragma","no-cache"); 
response.setHeader("Cache-Control","no-store"); 
response.setHeader("Expires","0"); 
response.setDateHeader("Expires",-1); 
%> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<a href="update.jsp">update</a> 
<a href="delete.jsp">display</a> 
<a href="logout.jsp">logout</a> 
<% 
    ResultSet rs = null; 
    try { 
     String mail = (String) session.getAttribute("mail"); 
     String sql = "select * from tempregister where mail=?"; 
     Class.forName("com.ibm.db2.DB2Driver"); 
     Connection con = DriverManager.getConnection("jdbc:db2://localhost:50000/TEMP", "tarun", "12347890"); 
     PreparedStatement ps = con.prepareStatement(sql); 
     ps.setString(1, mail); 
     rs = ps.executeQuery(); 
     while (rs.next()) { 
      %>    
      <%=rs.getString(4)%> 
      <% 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
%> 

</body> 
</html> 
+0

,即使在刪除catch塊後嘗試我的數據沒有獲取到html請幫助我 –

+0

你有任何錯誤信息嗎?如果否,DB2將不返回SQL的記錄。 –

+0

是的DB2沒有在客戶端返回任何記錄..我的查詢中是否有任何錯誤 –