スポンサードリンク

Java 都道府県マスターにレコードを追加する。

今回はJavaのプログラムから、都道府県マスターにレコードを追加してみます。データベースに接続する部分は検索の時と一緒ですから、プログラムを追加用に少し書き直すだけで済みます。

追加、更新、削除では検索の時と違い、結果セットからデータを取り出す必要はありませんので、プログラムは簡単になります。それでは早速試してみましょう。


【1】PrefInsert.java を新たに作成します。

*「\」はWindowsではエンマークのことです。

保存先 C:\java\sample100
ファイル名 PrefInsert.java

import java.sql.*;

class PrefInsert {
  public static void main(String args[]) {
    try {
      //JDBCドライバのロード
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      //各設定
      String url = "jdbc:odbc:SampleDB030";
      String user = "";
      String pass = "";
      //データベースに接続
      Connection con = DriverManager.getConnection(url,user,pass);
      //ステートメントオブジェクトを作成
      Statement stmt = con.createStatement();

      //SQL文作成
      String mySql = "insert into T01Prefecture values(99, 'ハワイ')";
      System.out.println();
      System.out.println("SQL:" + mySql);

      //SQL実行
      int num = stmt.executeUpdate(mySql);
      System.out.println(num + "件のレコードを追加しました。");
      //オブジェクトを解放
      stmt.close();
      con.close();

    } catch (Exception e) {
      System.out.println("例外発生:" + e );
    }
  }
}



【2】コマンドプロンプトを起動して、カレントディレクトリを sample100 に切り替えます。

java-334.gif


【3】javac PrefInsert.java と入力し、コンパイルします。

java-345.gif


【4】java PrefInsert と入力し、プログラムを実行します。

java-346.gif


【5】プログラムの実行結果が表示されました。

java-347.gif

SQLと追加したというメッセージが表示されます。これらはプログラムで出力しています。

次に本当にレコードが追加されているか確認してみましょう。せっかく PrefSelect を作ったので、まずはコマンドプロンプトから確認してみます。


【6】java PrefSelect と入力し、プログラムを実行します。

java-348.gif


【7】「99 ハワイ」が追加されています。

java-349.gif


【8】データベース SampleDB030.mdb のテーブル T01Prefecture を開いても確認することができます。

java-350.gif


【解説】

(1)SQL文を作成している部分です。テーブルT01Prefecture に values() で設定した値を追加します。このSQL文は省略形なので、値の並び順はテーブルのフィールドの順番と一致させます。
String mySql = "insert into T01Prefecture values(99, 'ハワイ')";

*SQLについてはAccess SQL初心者入門講座で詳しく解説しています。


(2)見やすいように空行を出力して、確認のためのSQL文を出力しています。
System.out.println();
System.out.println("SQL:" + mySql);


(3)追加するSQL文を実行している部分です。追加したレコード数が返ってきますので、int型(整数型)の変数 num で受け取っています。
int num = stmt.executeUpdate(mySql);

*追加、更新、削除では、executeUpdate()を使います。検索するSQL文の時は、executeQuery()を使っていたことと、返ってくるのが結果セットだった点が異なりますので注意してください。

・検索の場合
ResultSet rs = stmt.executeQuery(mySql);

・追加、更新、削除の場合
int num = stmt.executeUpdate(mySql);


(4)変数 num には追加したレコード数が入っていますので、画面に結果を出力しています。
System.out.println(num + "件のレコードを追加しました。");


(5)オブジェクトを解放している部分ですが、追加、更新、削除では結果セットは必要ないので、 rs は使っていません。データベースを切断するには作成した順番と逆にオブジェクトをクローズするのでしたね。

stmt.close();
con.close();


実は今回の追加のプログラムには欠点があります。SQL文がプログラムの中で固定されているので、レコードを追加する度にSQL文を書き直し、コンパイルしなければなりません。

そこで次回はプログラムの実行時に、追加のSQL文を「動的」に作成する方法を説明します。


スポンサードリンク






Java初心者入門講座TOPへ