0

FrmRegistrationというJFrameがあるとしましょう。その機能は、 recordsというテーブルにデータを挿入することです。

MySQLのコマンドdescレコードは、次のようになります。

+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | varchar(7)   | NO   | PRI |         |       | 
| name      | varchar(100) | NO   |     | NULL    |       | 
| birthday  | date         | NO   |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+

FrmRegistration内には、誕生日入力用のJFormattedTextFieldがあります。これをftfBirthdayと呼びます。Netbeansでは、コンポーネントを右クリックして[プロパティ]->[コード]タブ->[変数名]に移動することにより、コンポーネントに名前を付けます。または、右クリック->コードのカスタマイズ->名前の変更...ボタン。

フィールドを右クリックして[プロパティ]に移動し、FormatterFactoryで[...]ボタンをクリックします。#### / ##/##でカスタマイズされたフィールドを作成します

JFormattedTextFieldの理由は、ユーザーがスラッシュを入力しても時間を無駄にしないためです。それらは自動的に表示されます。

Insertと呼ばれるFrmRegistrationのボタンのソースコードで何をすべきですか?

4

1 に答える 1

3

ソース コードに移動する前に、日付フィールドを右クリックして [プロパティ] に移動します。テキストの内容をコピーします。(a = 1 つのスペース) である必要があります。

あああ/ああ/ああ

" } else if (" / / ".equals(birthday)) { " 行で使用されます。

(適切なパラメータについてはコードを参照してください)

フィールドが空かどうかを確認するなど、いくつか追加しました。

    try {
                Class.forName("com.mysql.jdbc.Driver");

                try (Connection con = DriverManager.getConnection(

                                "jdbc:mysql://localhost/database_name_here",
                                "username_here", "password_here")) {

                    String if = txtId.getText();
                    String name = txtName.getText();
                    String birthday = ftfBirthday.getText();

                    PreparedStatement stmt = con.prepareStatement(

                            "INSERT INTO records "
                            + "(id, name, birthday)"
                            + "VALUES(?,?,STR_TO_DATE(?,'%Y/%m/%d'))");

                    if (id.isEmpty()) {
                        JOptionPane.showMessageDialog(null,
                                "The ID field must be completed!");

                    } else if (name.isEmpty()) {
                        JOptionPane.showMessageDialog(null,
                                "The Name field must be completed!");

                    } else if ("    /  /  ".equals(birthday)) {
                        JOptionPane.showMessageDialog(null,
                                "The Birthday field must be completed!");

                    } else {

                        stmt.setString(1, id);
                        stmt.setString(2, name);
                        stmt.setString(3, birthday);

                        stmt.executeUpdate();

                        JOptionPane.showMessageDialog(this, " Data was saved successfully! ");

                    }

                }

            } catch (SQLException e) {
                JOptionPane.showMessageDialog(this, "SQL command error "
                        + e.getMessage());

            } catch (ClassNotFoundException e) {
                JOptionPane.showMessageDialog(this,
                        " Database driver not found ");

        }

それでおしまい。それが誰かを助けることを願っています! :-)

于 2012-11-15T02:41:31.127 に答える