【问题标题】:Why it is going in infinite loop为什么它会无限循环
【发布时间】:2015-09-27 18:00:21
【问题描述】:

这里, 我想做的是 如果给定的用户 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);
    }
}  

【问题讨论】:

  • “用户 ID 已存在”如果光标包含任何值会更有意义

标签: java mongodb user-interface registration netbeans-8


【解决方案1】:

代码永远不会前进到下一条记录。

循环应该包含

cursor.next()

消费结果。

【讨论】:

  • 不知道你为什么不使用简单的计数,它会提高你的编码标准
  • @RohitJain 确实 - 并结合第一个或限制,因为不需要总数。这只是为了解决字面上的问题/问题。
【解决方案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!!!");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-23
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 2011-04-19
    • 2011-08-18
    相关资源
    最近更新 更多