前提
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)です。
追加情報
どちらも方はStringで、空白等もなさそうです。
falseというのは、System.out.println(idStr == rsid);を出力した結果です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/30 09:20
2022/11/30 09:31
2022/11/30 10:55