下面, 我想做的是 如果给定的userid已经存在,那么它应该清除所有字段。 并重新启动该页面....
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);
}
}
答案 0 :(得分:2)
代码永远不会进入下一条记录。
循环应包含
cursor.next()
使用结果。
答案 1 :(得分:2)
很确定你必须做这样的事情:
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!!!");
}