为什么它会进入无限循环
Why it is going in infinite loop
在这里,
我想做的是
如果给定的用户 ID 已经存在,那么它应该清除所有字段。
并重新启动该页面....
private void uuserActionPerformed(java.awt.event.ActionEvent evt) {
MongoClient mClient;
DB mDB;
DBCollection valCollection;
Cursor cursor;
try {
mClient = new MongoClient(ip, port);
System.out.println("Connected to mongodb instance at " + ip + ":" + port);
mDB = mClient.getDB(dbName);
valCollection = mDB.getCollection(collectionName);
userid = uuser.getText();
BasicDBObject findPara = new BasicDBObject();
BasicDBObject findCon = new BasicDBObject();
findPara.append("userid", userid);
findCon.append("userid", true);
findCon.append("_id", false);
cursor = valCollection.find(findPara, findCon);
flag = 1;
while (cursor.hasNext()) {
flag = 0;
System.out.println("User ID is not correct!!!");
}
if (flag == 0) {
System.out.println("User Id is not correct...");
dispose();
new Register().setVisible(true);
}
System.out.println("Move Forward Your Id is correct...");
} catch (UnknownHostException e) {
e.printStackTrace();
System.exit(-1);
}
}
代码永远不会前进到下一条记录。
循环应包含
cursor.next()
消耗结果。
很确定你必须这样做:
flag=1;
while (cursor.hasNext())
{
cursor.next();
flag=0;
System.out.println("User ID is not correct!!!");
}
因为您的光标永远不会移动到下一个元素。
此外,我认为为您的目的使用 while 循环没有任何好处。
在这种情况下,您甚至不需要移动光标,
如果您只想知道是否没有带有该 ID 的条目。
flag=1;
if(cursor.hasNext())
{
flag=0;
System.out.println("User ID is not correct!!!");
}
在这里, 我想做的是 如果给定的用户 ID 已经存在,那么它应该清除所有字段。 并重新启动该页面....
private void uuserActionPerformed(java.awt.event.ActionEvent evt) {
MongoClient mClient;
DB mDB;
DBCollection valCollection;
Cursor cursor;
try {
mClient = new MongoClient(ip, port);
System.out.println("Connected to mongodb instance at " + ip + ":" + port);
mDB = mClient.getDB(dbName);
valCollection = mDB.getCollection(collectionName);
userid = uuser.getText();
BasicDBObject findPara = new BasicDBObject();
BasicDBObject findCon = new BasicDBObject();
findPara.append("userid", userid);
findCon.append("userid", true);
findCon.append("_id", false);
cursor = valCollection.find(findPara, findCon);
flag = 1;
while (cursor.hasNext()) {
flag = 0;
System.out.println("User ID is not correct!!!");
}
if (flag == 0) {
System.out.println("User Id is not correct...");
dispose();
new Register().setVisible(true);
}
System.out.println("Move Forward Your Id is correct...");
} catch (UnknownHostException e) {
e.printStackTrace();
System.exit(-1);
}
}
代码永远不会前进到下一条记录。
循环应包含
cursor.next()
消耗结果。
很确定你必须这样做:
flag=1;
while (cursor.hasNext())
{
cursor.next();
flag=0;
System.out.println("User ID is not correct!!!");
}
因为您的光标永远不会移动到下一个元素。 此外,我认为为您的目的使用 while 循环没有任何好处。 在这种情况下,您甚至不需要移动光标, 如果您只想知道是否没有带有该 ID 的条目。
flag=1;
if(cursor.hasNext())
{
flag=0;
System.out.println("User ID is not correct!!!");
}