入力チェックが正しく完了した後に、画面データから UPDATE 構文によって SQL の 更新処理を作成して実行します。UPDATE 構文で更新される行は 1 行のみであり、主キーでその行が限定されます 社員マスタ
列名 | 型名 | 最大桁 | 主キー | 型説明 | |
---|---|---|---|---|---|
1 | 社員コード | VARCHAR | 4 | 1 | Null で終了する Unicode 文字列 |
2 | 氏名 | VARCHAR | 50 | Null で終了する Unicode 文字列 | |
3 | フリガナ | VARCHAR | 50 | Null で終了する Unicode 文字列 | |
4 | 所属 | VARCHAR | 4 | Null で終了する Unicode 文字列 | |
5 | 性別 | INT | 4 バイトの符号付き整数 | ||
6 | 作成日 | DATETIME | 日付値 | ||
7 | 更新日 | DATETIME | 日付値 | ||
8 | 給与 | INT | 4 バイトの符号付き整数 | ||
9 | 手当 | INT | 4 バイトの符号付き整数 | ||
10 | 管理者 | VARCHAR | 4 | Null で終了する Unicode 文字列 | |
11 | 生年月日 | DATETIME | 日付値 |
更新処理を実行する為に入力をチェックを行っていますが、かならず更新前には操作しているユーザに確認を求める必要があります。それがなければ、意図せぬ更新処理作業を行ってしまう事が十分に考えられます。更新処理はシステムによって重大な処理であり、入力者の不注意で問題が起きるような可能性は最大限排除する必要があります。
// ここに更新処理を記述する int result = JOptionPane.showConfirmDialog(contentPane, "更新してよろしいですか?", "更新確認", JOptionPane.OK_CANCEL_OPTION); if ( result == JOptionPane.CANCEL_OPTION) { rdbms.close(); return; } try { String scode = syainCode.getText(); String sname = syainName.getText(); String ssyozoku = syainSyozoku.getText(); int ssex = syainSex.getSelectedIndex(); String skyuyo = syainKyuyo.getText(); String steate = syainTeate.getText(); String skanri = syainKanri.getText(); String sbirth = syainBirth.getText(); String sql = ""; sql += "update 社員マスタ set"; sql += " 氏名 = '" + sname + "',"; sql += " 所属 = '" + ssyozoku + "',"; sql += " 性別 = " + ssex + ","; sql += " 給与 = " + skyuyo + ","; if ( steate.trim().equals("") ) { sql += " 手当 = NULL,"; } else { sql += " 手当 = " + steate + ","; } if ( skanri.trim().equals("") ) { sql += " 管理者 = NULL,"; } else { sql += " 管理者 = '" + skanri + "',"; } if ( sbirth.trim().equals("") ) { sql += " 生年月日 = NULL,"; } else { sql += " 生年月日 = '" + sbirth + "',"; } sql += " 更新日 = now()"; sql += " where 社員コード = '" + scode + "'"; System.out.println(sql); result = rdbms.stmt.executeUpdate(sql); System.out.println("更新件数 : " + result); JOptionPane.showMessageDialog(contentPane, "更新処理が実行されました"); passControl.clearDetailes(); passControl.pass1Enable(); } catch (Exception ex) { ex.printStackTrace(); } rdbms.close();
このコード上に、データベースへの接続処理が見えていませんが、直前に他のテーブルの行データの参照の為、既に接続済みです。また、SQLを作成する為に、入力フィールドの状況をチェックしていますが、本来の更新前のチェックで、全ての問題点が排除されているという前提でのコードとなっています。( 例 : 入力フィールドに数値以外の値や漢字スペースは含まれていない ) ここでは、SQL 文を文字列連結で作成していますが、これでは後からのメンテナンス性が悪いので、ベースとなる一文としての SQL 文をテキストで外部に作成して、データ部分を入力値で置き換えるようなクラスまたはメソッドを作成する必要があります。 関連する記事
|
【Javaの最新記事】
- Java : Apache POI で最低限の処理を標準化( ここではワークブックは新規作成 )
- Java で JSON 文字列を オブジェクトに変換する Google Gson の基本 4 パターン
- Java のコンソールで NAVER の RSS を取得して、title 部分を正規表現で加工して表示するサンプル
- Eclipse で、文字列内のファイルのパスの \ 記号を \\ にする方法
- Java : Google gson 2.3.1 で JSON 文字列を定義済みのクラスを使ってオブジェクト化
- Java : Google gson 2.3.1 で、JSON 文字列のフォーマットが解らなくてもなんとかなる『ベタ』な処理方法
- Eclipse のホバーで追加したライブラリの javadoc を表示させる手順
- Eclipse+WindowBuilder : DBアプリケーション(社員マスタメンテ)の入力チェック
- Eclipse+WindowBuilder : DBアプリケーション(社員マスタメンテ)の二会話画面制御
- Eclipse+WindowBuilder : DBアプリケーション(社員マスタメンテ)でDBからSELECT構文で行データを読み出す
- Eclipse+WindowBuilder : ボタンイベント(AbstractAction) の作成
- Eclipse+WindowBuilder : データベースアプリケーション(社員マスタメンテ)の画面作成
- Eclipse + WindowBuilder : JDBC と ODBC を使った、オールマイティなデータベース接続サンプル( MySQL / SQLServer / Oracle / Postgr..
- Eclipse + WindowBuilder : Design タブが表示されなくなった時の対処
- Eclipse のパンくずリスト(breadcrumb) をワークスペースの設定ファイルで非表示にする
- Java : Eclipse 実行の System.in.read(buff) でコンソール入力
- iText( itextpdf-5.4.3 / Java ) で簡単に PDF 出力をする。
- SQL 文へのデータバインド用 public class GetSQL
- ADT( Android Development Tools ) Eclipse に Window Builder をインストールして Swing アプリケーションを作成する(2)
- Java : Windows の環境変数の列挙( 含ソート )