JDBC连接sql server 通过 while (rs.next())循环语句只能读取到第二条数据
问题背景:首先没有使用while 循环 只能读取到第一条数据,再加入while循环之后,只能读取第二条数据,while循环仅循环一次,依旧无法解决问题,问题代码如下:
if (jr1.isSelected()) //非管理员登陆
{
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=hangkongsystem";
String userName = "sa";
String userPwd = "sa";
String passWord;
userId = null;
try {
Class.forName(driverName);
}
catch (Exception e1) {
e1.printStackTrace();
}
try {
Connection con = DriverManager.getConnection(dbURL, userName, userPwd);//
Statement s = (Statement) con.createStatement( );
String r2 = "select * from 账户密码";
ResultSet rs = ((java.sql.Statement) s).executeQuery(r2);
while (rs.next()) {
rs.next();
userId = rs.getString("顾客ID").trim();
passWord = rs.getString("passwd").trim();
s.close();
con.close();
if (userId.equals(jtf1.getText()) && passWord.equals(jtf2.getText())) {
new kehu(userId);
jfrm.setVisible(false);
} else {
JOptionPane.showMessageDialog(null, "用户id或密码不正确!");
}
}
}
catch(Exception e1)
{
e1.printStackTrace();
}
}
第26行注释掉 rs.next();试试
31行s.close();和32行 con.close();
放到while循环之外。先遍历完查询到的数据再关闭连接,放在循环之内的话,只有第一次循环有连接对象,关闭了之后,后面的循环获取不到连接对象,就会报错。