-4

由于我想将用户在 jTextFields 中输入的用户 ID 和密码与我的 mongodb 文档中存在的用户 ID 和密码的值进行比较,因此 Mongodb 中的文档如下所示:

{ "_id" : ObjectId("500ee83ca5d4c30481aa2a13"),
 "User ID" : 10, 
 "Password" : "4554gf",}

下面的代码在我的Login按钮上

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    int s1 = Integer.parseInt(jTextField1.getText()); //number entering in jtextfield 
    String s2 = jPasswordField1.getText(); //password enter by user  
    if(s1== UserId  &&  s2==password) {
        this.dispose();//this will dispose the login gui
        a.setVisible(true);//this will visible the nxt gui
    }
    else {
        asd.setText("invalid user"); // label that shows if userid and dont match
    }

所以它不工作,所以请告诉怎么做?我希望你们都明白我的问题

4

2 回答 2

2

永远不要使用 == 来比较对象

始终使用equals()

== 仅当它们是相同的对象(相同的引用),具有相同值但创建方式不同的对象时才会起作用,它将不起作用。

于 2012-07-25T21:50:02.710 回答
0

我就是这样做的:

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    BasicDBObject view = new BasicDBObject();
    double id = 0;
    String pass = "";


    int s1 = Integer.parseInt(jTextField1.getText());
    String s2 = jPasswordField1.getText();
    view.put("Pateint ID", s1);
    DBCursor cur1 = Patient.coll.find(view);// cheeks in collection of specific id
    if (cur1.hasNext()) {
        DBObject o = cur1.next();//
        pass = (String) o.get("Password");//get password from mongodb
        id = (double) o.get("Pateint ID");// get pateintID from mongodb
    }

    if (s1 == id && s2.equals(pass))// matches id and password here 
   {
        this.dispose();


        a.setVisible(true);

    } else {
        asd.setText("invalid user");
    }

}                  
于 2012-07-26T22:49:36.410 回答