selectでテーブルから取得したデータと入力されたデータを比較したい。

前提

selectを使用してid(reid)を取得し、入力されたid(idStr)と比較し、同じidがあった場合はエラー文を表示させるというプログラム。

実現したいこと

selectでテーブルから取得したデータと入力されたデータを比較できるようにしたい。

該当のソースコード・発生している問題

Btn0.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String idStr = new String(idField.getText()); //入力されたid try { Statement stmt = conn.createStatement(); String SQL = "select * from user"; ResultSet rs = stmt.executeQuery(SQL); while(rs.next()){ String rsid = rs.getString("id");//selectで取得したid if(idStr == rsid) { String[] options = { "確認" };        JOptionPane.showOptionDialog(account.this,       "登録済みのidです。", "確認失敗",       JOptionPane.OK_OPTION, JOptionPane.ERROR_MESSAGE, null,       options, options[0]);        idField.setText(""); }else { JOptionPane.showMessageDialog(null, "確認完了.", "完了",                            JOptionPane.INFORMATION_MESSAGE); } } rs.close(); stmt.close(); }catch(SQLException s) { s.printStackTrace(); } } }); id.add(Btn0);

if文でidStrとrsidを比較しているが、うまくいかない状態です。

試したこと

System.out.println(idStr == rsid);でどういう状態なのか見えるようにしたが、falseという結果でした。どちらともString型だと思うのですが、どうでしょうか?

テーブル内のデータの型はVARCHAR(50)です。

追加情報

イメージ説明
図1実行結果

イメージ説明
図2 テーブル内のデータ

どちらも方はStringで、空白等もなさそうです。
falseというのは、System.out.println(idStr == rsid);を出力した結果です。

コメントを投稿

0 コメント