异常:java.sql.SQLException: Before start of result set
解决方法:使用rs.getString();前一定要加上rs.next();
sm = conn.createStatement(); ResultSet rs = null; String sql_max = "SELECT id FROM a WHERE name= '" + name + "' ORDER BY online_time DESC LIMIT 1"; rs = sm.executeQuery(sql_max); if (rs.next()) { String id = rs.getString("id"); int id1 = Integer.parseInt(id); String sql_update = "UPDATE b SET offline_time = NOW() WHERE id=" + id1 + " and name= '" + name+ "'"; sm.executeUpdate(sql_update); }
原因:ResultSet对象代表SQL语句执行的结果集,维护指向其当前数据行的光标。每调用一次next()方法,光标向下移动一行。最初它位于第一行之前,因此第一次调用next()应把光标置于第一行上,使它成为当前行。随着每次调用next()将导致光标向下移动一行。在ResultSe对象及其t父辈Statement对象关闭之前,光标一直保持有效。
参考:https://blog.csdn.net/killua_hzl/article/details/6073618