【问题标题】:why we use next() method in java? [duplicate]为什么我们在 java 中使用 next() 方法? [复制]
【发布时间】:2016-12-28 18:03:23
【问题描述】:

这里是代码

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection conn=DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\MUHAMMAD SHAHAB\\STUD1.accdb");

Statement st = conn.createStatement();
String sql="select Username,Password from SUN where Username='"+user+"'and Password='"+pass+"'";
ResultSet rs=st.executeQuery(sql);

int count=0;
while(rs.next()) {
    count=count+1;
}
if(count>0) {
     JOptionPane.showMessageDialog(null, "Access granted");
} else if(count<1) {
     JOptionPane.showMessageDialog(null,"User Not Found\nAccess is Denied");
}

我正在用 Java 创建一个用户验证系统,并且我已将我的程序与 MS Access 连接起来。我在 MS Access 的表 SUN 的字段中插入了一些记录,它工作正常。但我只想知道next() 方法和count 变量在我的程序中的工作原理。

【问题讨论】:

  • count 是计算行数的变量,如果存在,rs.next() 转到结果集中的下一行。下次用 google 做这个,这个问题很简单,google 会帮你找到很多关于这个的教程。
  • 在提问docs.oracle.com/javase/7/docs/api/java/sql/… 之前您是否尝试过文档?
  • next() 获取下一行,或者返回 false 是否没有。 count 计算行数。代码看起来很简单。

标签: java ms-access next


【解决方案1】:

它向前移动(或试图返回一个布尔值,告诉它是否成功)结果集光标向前。 count 变量是无用的,因为您可以只写 if(rs.next()) 来确定显示哪条消息。

【讨论】:

  • 意思是说它基本上是在ms访问表中向前移动光标?
  • 没有。在结果集中。
  • 最好分配给布尔变量而不是直接在布尔语句中使用它。 boolean rowExists = rs.next(); rowExists 可以在任何你需要的地方使用,但 rs.next() 不能使用,因为它总是向前发展。
  • @Gopidoss 没有“最好分配”规则。在这种特殊情况下,count while 是无用的。无论如何,它都不是“更好”。
  • 同意@Kayaman,我的观点是,如果行的存在需要解决多个用例,那么我建议将其保存在布尔容器(rowExists)中,而不是直接在“平等运算符”中使用它,因为它将光标从当前位置向前移动一行。 boolean rowExists = lotteryLogRs.next(); while (proceed) { if (rowExists) { //做某事 } ........ break; ........ } ....... ....... // 添加剩余 if (rowExists) { // 做某事 }
猜你喜欢
  • 2013-06-26
  • 2011-08-13
  • 2021-12-09
  • 1970-01-01
  • 2011-05-08
  • 2017-10-06
  • 1970-01-01
  • 2020-01-29
  • 1970-01-01
相关资源
最近更新 更多