0

ユーザーの詳細(名前、パスワードなど)をキャプチャして保存し、それらをSQLデータベースに保存して、ユーザーが将来ログインするために使用できるようにしようとしています。

詳細をデータベースの行として保存するにはどうすればよいですか?ただし、詳細は個別の文字列として入力されます。また、コンボボックスから選択した性別 (男性、女性) などの詳細をキャプチャして保存するにはどうすればよいですか? ありがとう。

private class achandler implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent ae) {
            //capture user details
            String fnamevalue = fnametext.getText();
            String lnamevalue = lnametext.getText();
            String usernamevalue = usernametext.getText();
            char[] pwdvalue = pwdtext.getPassword();
            char[] pwdrptvalue = pwdrpttext.getPassword();

            if(pwdvalue == pwdrptvalue) {
            //add user details to an array
            String[] userdetail = {fnamevalue, lnamevalue, usernamevalue, pwdvalue.toString()};

            try {
            Class.forName("com.mysql.jdbc.Driver");
            String Url = "jdbc:mysql://localhost/nsibirwa?" +
                                   "user=root&password=1234";

            Connection con = DriverManager.getConnection(Url);
            Statement stmt = con.createStatement();

            //I am stuck here!!!! i.e. adding 'userdetail' as a tuple in the database


        }
        catch (SQLException e) {
            System.out.println("SQL Exception: "+ e.toString());
        } 
        catch (ClassNotFoundException cE) {
            System.out.println("Class Not Found Exception: "+ cE.toString());
        }
       }
            else {
            JOptionPane.showMessageDialog(null, "password not matching!", 
                        "Password error", JOptionPane.ERROR_MESSAGE);
            }

     }
   }
4

1 に答える 1

2

データベースに「userdetail」をタプルとして追加する

何かのようなもの:

Connection con = DriverManager.getConnection(Url);
PreparedStatement stmt = con.prepareStatement("insert into user_details (fname, lname, username, pwd) values (?,?,?,?));
stmt.setString(1, fnamevalue);
stmt.setString(2, lnamevalue);
stmt.setString(3, username);
stmt.setString(4, new String (pwdvalue));
stmt.executeUpdate();

あなたのコードには別の問題があります:

if (pwdvalue == pwdrptvalue)

そのようなオブジェクトを比較することはできません。これらの char[] を文字列に変換し、それらequals()を比較するために使用する必要があります。理由を調べるには、「java string equals」を検索してください。これは非常に基本的な Java の知識です (私が見たすべてのチュートリアルで説明されています)。

user_detailsこれは、列fnamelnameusernameおよびで名前が付けられたテーブルがあることを前提としていますpwd。テーブル定義が異なる場合は、insert ステートメントを調整する必要があります。

また、コンボボックスから選択した性別 (男性、女性) などの詳細をキャプチャして保存するにはどうすればよいですか?

そのために2番目の質問を開くことをお勧めします。1 つの質問にまったく異なるトピック (JDBC/SQL と単純な Swing) を混在させないでください。

于 2012-06-08T11:04:10.833 に答える