读书人

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

发布时间: 2013-07-09 09:50:48 作者: rapoo

关于 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"><<</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> </td>
</tr>
<%
}
}
con.close();


%>
<tr>
<td> </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">>></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> </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">密  码:</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="进入">
 
<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> </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"> <a href="mailto:shinglibin@gmail.com">联系本站</a> | <a href="admin/">管理员入口</a> | ©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"><<</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> </td>
</tr>
<%
}
}
这段我意思你去掉if(rs!=null)看看报错吗?不报错,那么我的判断就对了。你的Conn 类中的close()方法中有个


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

读书人网 >Java Web开发

热点推荐