急急急,为什么while只能循环一次?高手帮忙看看吧!
package com.hdpu.dataintime;
import java.io.IOException;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import com.hdpu.datasources.db.*;
import com.hdpu.utility.*;
import com.hdpu.ui.RequestHandler;
import com.hdpu.ui.*;
public class InTime extends HttpServlet {
Connection conn;
Statement st;
ResultSet rs,rs1;
String color="#000000";
String label_color="#71626C";
String Xmlshow="";
//潮位平均数据
public void init(ServletConfig config) throws ServletException {
//在数据库中校验登陆信息
//checking.......begin............................
try{
BrowseSession browseSession=new BrowseSession();
conn=((DatabaseDataSource)browseSession.getDataSource()).getConnection() ;
st=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
}
catch(Exception ep) {
System.out.println("Data source Error:"+ep);
}
}
/*
* 处理<GET> 请求方法
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置输出信息的格式及字符集
String[] label_zdidshuiwen={"日期:","站点ID:","水温:","盐度:","潮位:"};
String[] label_zdidqixiang={"日期:","站点ID:","气温:","湿度:","气压:","降水:","能见度:","风速:","风向:"};
response.setContentType("text/xml;charset=utf-8");
response.setHeader("Cache-Control","no-cache");
//创建输出流对象
PrintWriter out = response.getWriter();
//依据验证结果输出不同的数据信息
out.println("<response>");
try{
String sql1="select zdname,zdid from zhandianpeizhi";
rs1=st.executeQuery(sql1);
while(rs1.next())
{
String zdname=rs1.getString("zdname");
String zdid=rs1.getString("zdid");
String sql_zdidshuiwen="select to_char(rq,'yyyy-mm-dd hh24:mi:ss'),zdid,to_char(round(shuiwen,1),'fm99999.0'),to_char(round(yandu,1),'fm99999.0'),to_char(round(chaowei,1),'fm99999.0') from shuiwenmindata where rq=(select max(rq) from shuiwenmindata where zdid='"+zdid+"') and zdid='"+zdid+"'";
String sql_zdidqixiang="select to_char(rq,'yyyy-mm-dd hh24:mi:ss'),zdid,to_char(round(qiwen,1),'fm99999.0'),to_char(round(shidu,1),'fm99999.0'),to_char(round(qiya,1),'fm99999.0'),to_char(round(jiangshui,1),'fm99990.0'),to_char(round(nengjiandu,1),'fm99999.0'),to_char(round(fengsu,1),'fm99999.0'),fengxiang from qixiangmindata where rq=(select max(rq) from qixiangmindata where zdid='"+zdid+"') and zdid='"+zdid+"'";
out.println("<"+zdname+"水文>" + departInTimeInfo(sql_zdidshuiwen,label_zdidshuiwen) + "</"+zdname+"水文>");
out.println("<"+zdname+"气象>" + departInTimeInfo(sql_zdidqixiang,label_zdidqixiang) + "</"+zdname+"气象>");
}
}
catch(Exception ep) {
System.out.println("Data source Error:"+ep);
}
out.println("</response>");
out.close();
}
public String departInTimeInfo(String sql,String[] labelString)
{
try{
rs=st.executeQuery(sql);
if (rs.next())
{
for(int i=1;i<=labelString.length;i++)
{
Xmlshow=Xmlshow+"<font color="+label_color+">"+labelString[i-1]+"</font>"+"<font color="+color+">"+rs.getString(i)+"</font><br>";
}
}
else
{
Xmlshow="没有数据。";
}
}
catch(Exception e) {}
return Xmlshow;
}
public void destroy()
{
try{
if (rs!=null) rs.close();
if (st!=null) st.close();
if (conn!=null) conn.close();
}
catch(Exception e){};
}
}
zhandianpeizhi里有三条记录,可是只显示第一条记录的结果:
- <response>
<三沙水文>没有数据。</三沙水文>
<三沙气象>没有数据。<font color=#71626C>日期:</font><font color=#000000>2009-03-11 18:53:59</font><br><font color=#71626C>站点ID:</font><font color=#000000>400</font><br><font color=#71626C>气温:</font><font color=#000000>14.4</font><br><font color=#71626C>湿度:</font><font color=#000000>78.7</font><br><font color=#71626C>气压:</font><font color=#000000>1018.9</font><br><font color=#71626C>降水:</font><font color=#000000>0.0</font><br><font color=#71626C>能见度:</font><font color=#000000>null</font><br><font color=#71626C>风速:</font><font color=#000000>9.1</font><br><font color=#71626C>风向:</font><font color=#000000>107</font><br></三沙气象>
</response>
帮忙看看怎么回事吧,看了好半天了没找到错误。谢谢大家,帮忙找找问题,分不够可以再加!