stmt = getStatement(conn);
sql="select * from TB_IOT_POINT where NetAddr='"+deviceid+"'";
rs = getRS(sql, stmt);
System.out.println(sql+"-----sql");
try {
while (rs.next()) {
System.out.println("-----"+rs.getString("NetAddr"));
if (rs.getString("NetAddr").equals(deviceid)) {
System.out.println(rs.getString("PointID")+"-------");
return rs.getString("PointID");
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sql="select * from TB_IOT_POINT where NetAddr='"+deviceid+"'";
rs = getRS(sql, stmt);
System.out.println(sql+"-----sql");
try {
while (rs.next()) {
System.out.println("-----"+rs.getString("NetAddr"));
if (rs.getString("NetAddr").equals(deviceid)) {
System.out.println(rs.getString("PointID")+"-------");
return rs.getString("PointID");
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs.getString("PointID");循环一次就return,跳出循环了。
但我的数据库中有这条记录啊。
sql都找了where NetAddr='"+deviceid+"'"
为什么后面还加个判断 rs.getString("NetAddr").equals(deviceid)。
即使加了也就算了
你也应该把结果存入list中。就return 一条结果,是完全按照你的程序来的。
System.out.println(rs.getString("PointID") + "-------");这一句有没有执行?
执行了就return了,不走循环了。还有试试下面的代码,要是count就是你sql返回的行数,说明while循环是没有问题的。 stmt = getStatement(conn);
sql = "select * from TB_IOT_POINT where NetAddr='" + deviceid + "'";
rs = getRS(sql, stmt);
int count = 0;
try {
while (rs.next()) {
count++;
}
System.out.println(count);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(rs。next)只循环了一次,而我的表中不止一条,也没有返回我要找的那条记录
是1的话,我就无话可说了,自己研究吧
System.out.println(rs.getString("PointID")+"-------"); //这句话未执行。
return rs.getString("PointID"); //直接return退出了。