JavaからMySQLデータベースに接続して CRUD 操作を行う

2024-04-02

JavaからMySQLデータベースに接続する方法

ドライバーのダウンロード

まず、MySQL Connector/Jと呼ばれるJDBCドライバーをダウンロードする必要があります。これは、JavaプログラムからMySQLデータベースに接続するためのライブラリです。

最新版は、以下のリンクからダウンロードできます。

ダウンロードしたら、解凍してプロジェクトフォルダに配置します。

プロジェクトへの追加

次に、ダウンロードしたドライバーをプロジェクトに追加する必要があります。

Mavenプロジェクトの場合、pom.xmlファイルに以下の依存関係を追加します。

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-j</artifactId>
  <version>8.0.30</version>
</dependency>
dependencies {
  implementation 'mysql:mysql-connector-j:8.0.30'
}

接続コードの作成

以下のコードは、MySQLデータベースに接続する例です。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Main {

  public static void main(String[] args) throws SQLException {
    // 接続情報
    String url = "jdbc:mysql://localhost:3306/test";
    String user = "root";
    String password = "password";

    // 接続
    Connection connection = DriverManager.getConnection(url, user, password);

    // 接続確認
    if (connection != null) {
      System.out.println("接続成功!");
    } else {
      System.out.println("接続失敗...");
    }

    // 接続を閉じる
    connection.close();
  }
}

このコードでは、以下の処理を行っています。

  1. DriverManager.getConnectionメソッドを使用して、データベースに接続します。
  2. 接続に成功した場合は、「接続成功!」というメッセージを出力します。
  3. 最後に、connection.close()メソッドを使用して、接続を閉じます。

コードの実行

上記のコードをコンパイルして実行すると、データベースに接続できるかどうかを確認することができます。

その他

上記のコードは基本的な接続方法のみを示しています。

  • データベースの操作(SELECT、INSERT、UPDATE、DELETEなど)
  • トランザクション処理
  • エラー処理

など、詳細については、以下のリファレンスなどを参照してください。

注意事項

  • 接続情報は、ご自身の環境に合わせて変更する必要があります。
  • データベースへの接続には、適切な権限が必要です。
  • 接続を閉じ忘れると、メモリリークの原因となるので注意が必要です。

上記の解説を参考に、JavaからMySQLデータベースに接続してみてください。




JavaからMySQLデータベースに接続するサンプルコード

import java.sql.*;

public class Main {

  public static void main(String[] args) throws SQLException {
    // 接続情報
    String url = "jdbc:mysql://localhost:3306/test";
    String user = "root";
    String password = "password";

    // 接続
    Connection connection = DriverManager.getConnection(url, user, password);

    // SELECT
    Statement statement = connection.createStatement();
    ResultSet resultSet = statement.executeQuery("SELECT * FROM users");
    while (resultSet.next()) {
      System.out.println(resultSet.getString("id") + " " + resultSet.getString("name"));
    }

    // INSERT
    statement = connection.createStatement();
    statement.executeUpdate("INSERT INTO users (name) VALUES ('John Doe')");

    // UPDATE
    statement = connection.createStatement();
    statement.executeUpdate("UPDATE users SET name = 'Jane Doe' WHERE id = 1");

    // DELETE
    statement = connection.createStatement();
    statement.executeUpdate("DELETE FROM users WHERE id = 2");

    // 接続を閉じる
    connection.close();
  }
}
  1. createStatementメソッドを使用して、Statementオブジェクトを作成します。
  2. executeQueryメソッドを使用して、SELECTクエリを実行します。
  3. nextメソッドを使用して、結果セットをループ処理します。
  4. executeUpdateメソッドを使用して、INSERT、UPDATE、DELETEクエリを実行します。



JavaからMySQLデータベースに接続するその他の方法

JPA (Java Persistence API)

JPAを使用すると、以下のようなメリットがあります。

  • オブジェクト指向でのデータアクセス
  • SQLの記述を減らすことができる
  • 複数のデータベースベンダーに対応できる

JPAを使用するには、以下のライブラリが必要です。

  • Hibernate
  • EclipseLink
  • OpenJPA

など

Spring Dataは、Spring Framework上で動作するデータアクセスフレームワークです。

  • JPAなどのデータアクセス技術を簡単に利用できる
  • Spring Frameworkとの統合が容易
  • Spring Data JPA

MyBatisは、Javaとデータベース間のマッピングフレームワークです。

  • SQL記述量が少なく済む
  • 複雑なSQLを記述しやすい

MyBatisは、XMLファイルでSQLとJavaオブジェクトのマッピングを記述します。

上記以外にも、JavaからMySQLデータベースに接続する方法はいくつかあります。

それぞれの特徴を理解して、ご自身の用途に合った方法を選択してください。


java mysql jdbc


【MySQL初心者必見】ON DUPLICATE KEYとLAST_INSERT_IDの使い方をわかりやすく解説!

MySQLのINSERT . .. ON DUPLICATE KEY構文は、レコードの挿入を試行した際に、主キーの重複が発生した場合の処理を指定するために使用されます。この構文と併用されるLAST_INSERT_ID()関数は、最後に挿入または更新されたレコードのIDを取得するために使用されます。...


INSERT or UPDATE?もう悩む必要ナシ!MySQLのUPSERTでスマートデータ管理

MySQLには、INSERT . .. ON DUPLICATE KEY UPDATE 構文という便利な機能が用意されています。これは、レコードを挿入しようとした際に、そのレコードが既に存在する場合に自動的に更新処理を実行します。基本的な書き方は以下の通りです。...


SQLでグループごとの上位N行を取得する方法:Window関数とサブクエリ

SQLでグループごとに上位N行の結果を制限するには、いくつかの方法があります。ここでは、最も一般的な2つの方法を紹介します。方法1:Window関数を使うWindow関数は、グループ内の各行に対して、その行の周辺の行を参照して計算を行う関数です。上位N行の結果を制限するには、ROW_NUMBER()関数やRANK()関数などのWindow関数を使用します。...


【初心者向け】MySQL Workbenchでデータベース接続トラブルを解決!5つのステップでサクッと復旧

MySQL Workbenchでデータベースサーバーに接続できない場合、以下の点を確認することで問題を解決できる可能性があります。サーバーが起動していることを確認まず、MySQLサーバーが起動していることを確認してください。サーバーが起動していない場合は、起動してください。...


兄弟結果の処理をマスター!PHP、MySQL、SQLでパラメータ変数を使って行値を一致させる

このチュートリアルでは、PHP、MySQL、SQL を使って、兄弟結果のパラメータ変数として行値を一致させる方法を説明します。兄弟結果とは、関連する複数のクエリ結果を組み合わせるデータ操作です。パラメータ変数は、クエリ内で動的に値を変更するために使用されるプレースホルダです。...