2017-04-22 43 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没有在客户端返回任何记录..我的查询中是否有任何错误 –