データの削除

2.5 データの削除

 本節では、JDBCを利用してJavaプログラムからMySQLデータベースへ接続し、データを削除する方法について学習します。

2.5.1 JDBCを利用したデータ削除の基本構文

 MySQLデータベースからデータを削除する場合、処理の流れは登録や更新処理と同じ流れになります。

 ① JDBC(java.sqlパッケージ)をインポート
 ② JDBCドライバを読み込む。
 ③ データベースへ接続する。
 ④ SQL文(DELETE文)をデータベースに送るための準備を行う。
 ⑤ SQL文(DELETE文)をデータベースへ送信し、削除された行数を結果として受け取る。

int rowsCount = smt.executeUpdate(DELETE文);

 登録処理や更新処理と異なる点はデータベースへ送信するSQL文が違うという1点のみになります。
 データの削除を行うには、executeUpdate()メソッドの引数にDELETE文を記述します。
 では実際にデータの削除を行うプログラムを作成してみましょう。

データの削除を行うプログラム

 このプログラムは、データベースのデータを削除し、削除された件数を表示するプログラムです。

① ソース・フォルダー      :myjdbc_kanda/src
② パッケージ          :jp.co.f1.jdbc.ch02
③ 名前             :SampleDelete
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる

➢ SampleDelete.java
package jp.co.f1.jdbc.ch02;

import java.sql.*;

public class SampleDelete {

	//接続用の情報をフィールドに定数として定義
	private static String RDB_DRIVE="com.mysql.jdbc.Driver";
	private static String URL="jdbc:mysql://localhost/mybookdb";
 	private static String USER="bms";
 	private static String PASSWD="bms123";
 
 	public static void main(String[] args) {
 		try{
 			Class.forName(RDB_DRIVE);
 			Connection con = DriverManager.getConnection(URL,USER,PASSWD);
 			Statement  smt = con.createStatement();
 			String sql = "DELETE FROM bookinfo WHERE isbn ='00006'";
 			int rowsCount = smt.executeUpdate(sql);
 			System.out.print(rowsCount + "レコード削除しました。");
 
 			smt.close();
 			con.close();
 
 		}catch (Exception e) {
 			System.out.println("JDBCデータベース接続エラー");
 		}
 	}
 }

実行結果

解説

 このプログラムは2.3節で学習した登録処理や2.4節で学習した更新処理のプログラムとほとんど同じ内容になっています。異なる点は、18行目で定義しているSQL文(DELETE文)です。
   18: String sql = "DELETE FROM bookinfo WHERE isbn ='00006'";

 19行目のexecuteUpdate()メソッドでは引数に渡したDELETE文を実行しています。また、メソッドの戻り値として、削除した件数をint型の変数で受け取っています。
   19: int rowsCount = smt.executeUpdate(sql);

 実行結果には、削除された件数が1件という情報のみ表示されます。データが正しく削除されたかどうか確認する場合には、「SampleSelect.java」プログラムを実行しデータを確認してみてください。

図 2.5.1 SampleDelete実行後のSampleSelectの実行画面

ポイント
  • データを削除する場合、executeUpdate ()メソッドを使用する。
  • executeUpdate ()メソッドの引数にDELETE文を渡すと削除処理が実行される。
  • executeUpdate ()メソッドは引数に渡されたSQLコマンドによって、登録、更新、削除を実行することができる。

NEXT>> 2.6 リソースの開放