-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 に答える