MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

JavaでMySQLのテーブルを削除(DROP TABLE)する方法をわかりやすく解説

この記事では、JavaからJDBCを使ってMySQLのテーブルを削除(DROP)する方法を、実際のコード例とともに順を追って解説します。テーブルの作成から、削除処理の実行、そして削除後の確認まで、一連の流れを確認していきましょう。

1. 事前準備:データベースにテーブルを作成する

まず、削除対象となるテーブルを用意します。以下のSQLを実行して、customerDetailsというテーブルを作成します。

mysql> create table customerDetails
    -> (
    -> CustomerId int,
    -> CustomerName varchar(30)
    -> );
Query OK, 0 rows affected (0.56 sec)

2. 作成したテーブルが存在することを確認する

次に、データベース内のすべてのテーブルを表示し、customerDetailsテーブルが正しく作成されているかを確認します。

mysql> show tables;

実行結果は以下の通りです。

+------------------------------+
| Tables_in_test3              |
+------------------------------+
| bestdateformatdemo           |
| customerdetails              |
| deletedemo                   |
| differentdatetime            |
| expandedoutputdemo           |
| fieldlessthan5chars          |
| lastrecordbeforelastone      |
| mostrecentdatedemo           |
| nullcasedemo                 |
| order                        |
| orderbydatethentimedemo      |
| posts                        |
| productdemo                  |
| radiansdemo                  |
| selecttextafterlastslashdemo |
| siglequotesdemo              |
| studentinformation           |
| updatestringdemo             |
+------------------------------+
18 rows in set (0.00 sec)

出力結果を見ると、customerdetailsテーブルが存在していることがわかります。ここではtest3というデータベースを使用しています。

3. Javaプログラムでテーブルを削除する

それでは、Javaのコードを使ってテーブルを削除してみましょう。ポイントは、DROP TABLE IF EXISTS構文を使用することです。IF EXISTSを付けることで、テーブルが存在しない場合でもエラーが発生せず、安全に削除処理を実行できます。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class DropTableDemo {
    public static void main(String[] args) {
        Connection con = null;
        PreparedStatement ps = null;
        try {
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3?useSSL=false", "root", "123456");
            ps = con.prepareStatement(
            String.format("DROP TABLE IF EXISTS %s", "customerdetails"));
            boolean result = ps.execute();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

コードのポイント

  • DriverManager.getConnection():JDBCドライバー経由でMySQLデータベース「test3」に接続します。URLにはユーザー名とパスワードも指定します。
  • prepareStatement():削除用のSQL文「DROP TABLE IF EXISTS customerdetails」を準備します。
  • execute():SQL文を実行し、テーブルを削除します。

4. 削除後の状態を確認する

上記のJavaプログラムを実行したら、再度テーブル一覧を表示して、customerDetailsテーブルが本当に削除されたかを確認します。

mysql> show tables;

実行結果は以下の通りです。

+------------------------------+
| Tables_in_test3              |
+------------------------------+
| bestdateformatdemo           |
| deletedemo                   |
| differentdatetime            |
| expandedoutputdemo           |
| fieldlessthan5chars          |
| lastrecordbeforelastone      |
| mostrecentdatedemo           |
| nullcasedemo                 |
| order                        |
| orderbydatethentimedemo      |
| posts                        |
| productdemo                  |
| radiansdemo                  |
| selecttextafterlastslashdemo |
| siglequotesdemo              |
| studentinformation           |
| updatestringdemo             |
+------------------------------+
17 rows in set (0.00 sec)

先ほど18個あったテーブルが17個に減り、リストからcustomerdetailsが消えています。これにより、test3データベースからcustomerDetailsテーブルが正常に削除されたことが確認できました。

まとめ

JavaからMySQLのテーブルを削除する手順は以下の通りです。

  1. JDBCでデータベースに接続する
  2. DROP TABLE IF EXISTS構文でPreparedStatementを作成する
  3. execute()メソッドでSQLを実行する

IF EXISTSを活用すれば、テーブルが存在しないケースでもエラーを回避できるため、実務でも安全に利用できます。なお、DROP操作は元に戻せないため、本番環境で実行する際は十分に注意してください。

  1. JavaでMySQLに接続する方法を解説!JDBC接続の基本コード

    JavaとMySQLを接続するには? JavaアプリケーションからMySQLデータベースに接続するには、JDBC(Java Database Connectivity)を使用します。JDBCは、Javaからリレーショナルデータベースへアクセスするための標準APIであり、MySQL用のJDBCドライバ(Connector/J)をクラスパスに追加しておく必要があります。 以下は、Javaのコードを使ってMySQLに接続する基本的なサンプルです。 MySQL接続のサンプルコード import java.sql.Connection; import java.sql.DriverManager; p

  2. Javaを使用してMySQLテーブルの値を表示する方法

    MySQLデータベースのテーブル値をJavaで表示するには、ResultSetの概念を利用します。データベースへの接続には、MySQL JDBCドライバーを使用します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table demo87    -> (    -> name varchar(20),    -> age int    -> )