削除は追加や修正にくらべると簡単ですが、抽出条件を間違えると予想外のデータが消えてしまうことがあるので、一番気をつけなければなりません。コンピュータのデータは削除するのは簡単ですが、追加するのは非常に手間がかかるものです。
【1】PrefDelete.java を新たに作成します。
*「\」はWindowsではエンマークのことです。
保存先 C:\java\sample100
ファイル名 PrefDelete.java
import java.sql.*;
import java.io.*;
class PrefDelete {
public static void main(String args[]) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("削除する PREF_CD を入力してください。");
String str = br.readLine();
int prefCd = Integer.parseInt(str);
//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 = "delete from T01Prefecture where PREF_CD = " + prefCd;
System.out.println();
System.out.println("SQL:" + mySql);
//SQL実行
int num = stmt.executeUpdate(mySql);
System.out.println(num + "件のレコードを削除しました。");
//オブジェクトを解放
stmt.close();
con.close();
} catch (NumberFormatException e) {
System.out.println("値を整数型に変換できませんでした。");
System.out.println("例外発生:" + e );
} catch (Exception e) {
System.out.println("例外発生:" + e );
}
}
}
【2】コマンドプロンプトを起動して、カレントディレクトリを sample100 に切り替えます。

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

削除のプログラムを実行する前に、削除するレコードの PREF_CD を調べる必要があります。
【4】java PrefSelect と入力し、検索プログラムを実行します。

【5】今回は 101 ボストン のレコードを削除しますので、この番号を覚えておいてください。

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

【7】「削除する PREF_CD を入力してください。」と表示されたら 101 と入力してEnterキーを押します。

【9】削除結果が表示されました。

*コマンドライン引数を使い、SQL文がプログラムの中で動的に組み立てられています。
【10】コマンドプロンプトからレコードを確認してみます。java PrefSelect と入力し、検索プログラムを実行します。

【11】「101 ボストン」が削除されています。

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

【13】同様に削除プログラムを実行し、以下のレコードを削除してください。
・99 ハワイ
・100 グアム

【14】最終的にテーブル T01Prefecture のデータは追加前の状態に戻ります。(沖縄県が一番最後)

【解説】
(1)削除のSQL文を組み立てている部分です。変数が実際の値に置き換わります。
String mySql = "delete from T01Prefecture where PREF_CD = " + prefCd;
レコードを削除するときには where で抽出条件を指定することがとても重要です。抽出条件を忘れるとすべてのレコードが削除されてしまいますので気をつけてください。
(2)SQL文の組み立て方
最終的に組み立てたいSQL文です。
delete from T01Prefecture where PREF_CD = 101
全体を「"」(ダブルクォーテーション)で囲みます。
"delete from T01Prefecture where PREF_CD = 101"
値をコントロールや変数に置き換えます。
"delete from T01Prefecture where PREF_CD = prefCd"
コントロールや変数の前後に半角空白を入れ切り離します。
"delete from T01Prefecture where PREF_CD = prefCd "
コントロールや変数以外の文字列部分を「"」(ダブルクォーテーション)で囲みます。
"delete from T01Prefecture where PREF_CD = " prefCd
コントロールや変数と文字列を「+」で結合します。
"delete from T01Prefecture where PREF_CD = " + prefCd
変数mySqlに代入して1行のプログラムの終わりをあらわす「;」(セミコロン)を付けます。
String mySql = "delete from T01Prefecture where PREF_CD = " + prefCd;
これでプログラムの中でSQL文が動的に組み立てられるようになりました。
*SQLについてはAccess SQL初心者入門講座で詳しく解説しています。
今回までに作ったプログラムで、データベースを「検索(表示)」、「追加」、「更新」、「削除」できるようになりました。業務システムではこれが基本になります。
テーブル T01Prefecture のレコードをいろいろ操作してみてください。Javaからデータベースを操作する感じがつかめると思います。