首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于 while(rs.next()){有关问题!

2013-07-09 
关于 while(rs.next()){问题!!!!!!网页能够正常打开,也没有报错误,因为加了if(rs!null)。可是网页打开后里

关于 while(rs.next()){问题!!!!!!
网页能够正常打开,也没有报错误,因为加了if(rs!=null)。可是网页打开后里面原本该出现的内容都没有出现,而且数据库连接正常,却无法登入。求救!!!

代码如下。

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.sql.*"%> 
<jsp:useBean id="con" class="com.bwm.db.Conn" scope="page"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="css/default.css" rel="stylesheet" type="text/css">
</head>
<body background="images/bg.jpg">
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="27" colspan="3" align="right"><div id="link"></div></td>
  </tr>
  <tr>
    <td width="1" height="36" background="images/gbnavl.gif"></td>
    <td width="99%" background="images/gbnavm.gif"><div id="link1"><a href="student/">学生注册</a> <a href="company/">企业注册</a></div></td>
    <td width="1" background="images/gbnavr.gif"></td>
  </tr>
</table>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="50"  bgcolor="#FFFFFF"><div id="top"><img src="images/top.gif" width="340" height="38"></div></td>
  </tr>
</table>
<table width="100%" height="400"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td valign="top" background="images/index_bg.jpg" bgcolor="#FFFFFF"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
      <tr align="center" >
        <td width="50%" height="22"><div id="font1">学生求职</div></td>
        <td width="50%" height="22"><div id="font1">企业招聘</div></td>
      </tr>
      <tr>
        <td valign="top"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
<%
ResultSet rs=con.getRs("SELECT a.jobid,b.name,b.school,b.specialty,b.knowledge,a.job,a.emolument FROM tb_sjob AS a,tb_student AS b WHERE a.sname=b.sname and getdate()<=atime ORDER BY ptime DESC");
        if(rs!=null)
{
        while(rs.next()){
%>
      <tr>
        <td valign="top"><font id="reg">&lt;&lt;</font><a target="_blank" href="view.jsp?sid=<%=rs.getString(1)%>">[<%=rs.getString(2)%>]毕业于[<%=rs.getString(3)%>,<%=rs.getString(4)%>,<%=rs.getString(5)%>],欲求[<%=rs.getString(6)%>]职位,要求薪水[<%=rs.getString(7)%>]。</a>&nbsp;</td>
      </tr>
<%
        }
}
        con.close();


%>
      <tr>
        <td>&nbsp;</td>
      </tr>
    </table></td>
        <td valign="top"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
<%
rs=con.getRs("SELECT a.jobid,b.name,b.manage,a.job,a.emolument FROM  tb_cjob AS a,tb_company AS b WHERE a.cname=b.cname and getdate()<=atime ORDER BY ptime DESC");
        if(rs!=null)
{
        while(rs.next()){
%>
      <tr>
        <td valign="top"><font id="reg">&gt;&gt;</font><a  target="_blank" href="view.jsp?cid=<%=rs.getString(1)%>">[<%=rs.getString(2)%>]主要经营[<%=rs.getString(3)%>],招聘[<%=rs.getString(4)%>]职位,承诺薪水[<%=rs.getString(5)%>]。</a></td>
      </tr>
<%
        }
}
        con.close();
%>
      <tr>
        <td>&nbsp;</td>
      </tr>
    </table></td>
      </tr>
    </table></td>
    <td width="180" rowspan="2" valign="top" bgcolor="#F5f7f7"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
        <td><table width="100%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td height="22" colspan="2" align="center"  background="images/tdbg.jpg"><div id="font1">登录入口</div></td>
          </tr>
          <form name="form1" method="post" action="login.jsp"><tr>
            <td width="37%" height="22" align="center">用户名:</td>
            <td width="63%">
              <input name="username" type="text" size="12">
            </td>
          </tr>
          <tr>
            <td height="22" align="center">密&nbsp;&nbsp;码:</td>
            <td height="22"><input name="password" type="password" size="12"></td>
          </tr>
          <tr align="center">
            <td height="30" colspan="2">


              <input name="select" type="radio" value="student" checked >
              学生
              <input type="radio" name="select" value="company">
              企业</td>
          </tr>
          <tr align="center">
            <td height="30" colspan="2">
              <input type="submit" name="Submit2" value="进入">
              &nbsp;
<input name="Submit" type="reset" value="重置"></td>
          </tr></form>
        </table></td>
      </tr>
<tr>
        <td><table width="100%"  border="0" cellpadding="0" cellspacing="0" background="images/tdbg.jpg" >
          <tr>
            <td height="27"><div id="font1">友情链接</div></td>
          </tr>
<%
rs=con.getRs("SELECT address,name FROM tb_flink");
        if(rs!=null)
{
        while(rs.next()){
%>
          <tr>
            <td height="22"><div id="link2"><a href="<%=rs.getString(1)%>" target="_blank"><%=rs.getString(2)%></a></div></td>
          </tr>
<%
        }
}
        con.close();
%>
        </table></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
    </table></td>
  </tr>
</table>
<table width="100%" height="50"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td height="1"bgcolor="#FFFFFF"><hr size="1" color="#CC3300" style="position:absolute;"></td>
  </tr>
  <tr>
    <td bgcolor="#FFFFFF">&nbsp;<a href="mailto:shinglibin@gmail.com">联系本站</a> | <a href="admin/">管理员入口</a> | &copy;2010 大学 </td>
  </tr>
</table>
</body>
</html> while rs.next


[解决办法]
ResultSet rs=con.getRs("SELECT a.jobid,b.name,b.school,b.specialty,b.knowledge,a.job,a.emolument FROM tb_sjob AS a,tb_student AS b WHERE a.sname=b.sname and getdate()<=atime ORDER BY ptime DESC");

1.输出rs ,按你的描述应该为NULL,那么检查con.getRs函数内部实现

2 确认这里面的sql在你的数据库能不能查到数据

2 仅关闭rs,不知道你的Conn的设计,一个页面只需关闭一次
[解决办法]
不加if(rs!=null)会报错?
那证明你的rs = null啊。。。
是不是本来sql语句执行就没有符合条件的结果。。。。

然后close操作放在最后一步,
rs的名字不要重复。。。
[解决办法]
好乱啊关于 while(rs.next()){有关问题!
[解决办法]
就不能Jsp,纯显示吗?将sql收索做到1个serlvet里面。不是很好?

  try {
            if (rs != null) {
                rs.close();
                rs = null;
            }
        } catch (Exception e) {
            System.err.println(e.getMessage());
            e.printStackTrace();
        }

这里红色部分。你重写的close方法,直接将rs改为null了。是不是这里出错了!
[解决办法]
你可以测试下,第一段红色部分去掉if(rs!=null)看看报错吗?
不报错就是我说得。你的close方法有问题
因为你在第一段红色部分后跟了个con.close();过早的将 rs = null了,怎么改自己看吧
[解决办法]
调式,直接输出一下rs,看一下不就知道了吗
[解决办法]

引用:
Quote: 引用:

调式,直接输出一下rs,看一下不就知道了吗


不会。。 怎么弄、?
不过RS应该就是个NULL值。。


1.判断一下页面中con是否存在问题;
2.将sql语句复制到数据库执行一下看下是否存在字段错误等问题;
3.查看一下getRs(String sql)方法是否异常
[解决办法]
lz。没看懂我的意思啊
  if(rs!=null)
{
        while(rs.next()){
%>
      <tr>
        <td valign="top"><font id="reg">&lt;&lt;</font><a target="_blank" href="view.jsp?sid=<%=rs.getString(1)%>">[<%=rs.getString(2)%>]毕业于[<%=rs.getString(3)%>,<%=rs.getString(4)%>,<%=rs.getString(5)%>],欲求[<%=rs.getString(6)%>]职位,要求薪水[<%=rs.getString(7)%>]。</a>&nbsp;</td>
      </tr>
<%
        }
}
这段我意思你去掉if(rs!=null)看看报错吗?不报错,那么我的判断就对了。你的Conn 类中的close()方法中有个


 try {
            if (rs != null) {
                rs.close();
                rs = null;
            }
这个代码中有个rs=null;这里就是错误的关键!,你看看rs=null。怎么替代。估计这个方法也不是你写的吧

热点排行