Spring Bootを使ってJavaプログラムからMariaDBに接続する

2024-04-02

Java で MariaDB に接続する方法

JDBC のインポート

まず、Java の JDBC パッケージをプログラムにインポートする必要があります。

import java.sql.*;

MariaDB Connector/J のダウンロードと設定

次に、MariaDB Connector/J ドライバをダウンロードする必要があります。これは、Java プログラムから MariaDB に接続するための公式ドライバです。

ダウンロード:

  1. 使用する Java のバージョンに合ったドライバを選択します。
  2. ダウンロードボタンをクリックして、ファイルを保存します。

設定:

ダウンロードしたファイルをプロジェクトに含める必要があります。方法はいくつかありますが、以下は一般的な方法です。

  • Maven:
<dependency>
    <groupId>org.mariadb.jdbc</groupId>
    <artifactId>mariadb-java-client</artifactId>
    <version>3.0.6</version>
</dependency>
dependencies {
    implementation 'org.mariadb.jdbc:mariadb-java-client:3.0.6'
}
  • 手動:
    • ダウンロードした JAR ファイルをプロジェクトの lib フォルダにコピーします。
    • IDE でプロジェクトの設定を行い、JAR ファイルをクラスパスに追加します。

データベースへの接続

必要な設定が完了したら、以下のコードを使用してデータベースに接続できます。

// 接続情報
String url = "jdbc:mariadb://localhost:3306/mydb";
String user = "root";
String password = "password";

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

// ステートメントの作成
Statement statement = connection.createStatement();

// SQL クエリの発行
String query = "SELECT * FROM users";
ResultSet resultSet = statement.executeQuery(query);

// 結果の処理
while (resultSet.next()) {
    System.out.println(resultSet.getString("name"));
}

// 接続のクローズ
resultSet.close();
statement.close();
connection.close();

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

  1. urluserpassword 変数に接続情報(ホスト名、ポート番号、データベース名、ユーザー名、パスワード)を代入します。
  2. DriverManager.getConnection() メソッドを使用して、データベースへの接続を確立します。
  3. createStatement() メソッドを使用して、SQL クエリを実行するためのステートメントを作成します。
  4. executeQuery() メソッドを使用して、SQL クエリを実行し、結果セットを取得します。
  5. while ループを使用して、結果セットをループ処理し、各レコードのデータを出力します。
  6. close() メソッドを使用して、結果セット、ステートメント、接続を順に閉じます。

補足

上記のコードは基本的な接続方法を示しています。実際のプログラムでは、接続情報の管理、エラー処理、トランザクション処理など、さらに多くの考慮事項があります。

関連情報




import java.sql.*;

public class MariaDBExample {

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

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

        // ステートメントの作成
        Statement statement = connection.createStatement();

        // SQL クエリの発行
        String query = "SELECT * FROM users";
        ResultSet resultSet = statement.executeQuery(query);

        // 結果の処理
        while (resultSet.next()) {
            System.out.println("名前:" + resultSet.getString("name"));
            System.out.println("年齢:" + resultSet.getInt("age"));
        }

        // 接続のクローズ
        resultSet.close();
        statement.close();
        connection.close();
    }
}

このコードを実行するには、以下の準備が必要です。

  • MariaDB データベースがインストールされていること
  • mydb データベースが存在すること
  • users テーブルが存在し、nameage というカラムがあること

準備が完了したら、以下の手順でコードを実行できます。

  1. コードを MariaDBExample.java というファイル名で保存します。
  2. Java コンパイラを使用して、コードをコンパイルします。
javac MariaDBExample.java
  1. 実行コマンドを使用して、コードを実行します。
java MariaDBExample

実行すると、users テーブルのデータがすべて出力されます。

名前:田中 太郎
年齢:20
名前:佐藤 花子
年齢:30



Java で MariaDB に接続するその他の方法

ここでは、その他の接続方法を紹介します。

HikariCP を使用する方法

HikariCP は、Java アプリケーションにおけるデータベース接続の管理を簡潔化する接続プールライブラリです。 HikariCP を使用すると、以下のメリットがあります。

  • 接続プーリングによるパフォーマンスの向上
  • 接続の自動再接続
  • 接続リークの防止

HikariCP を使用するには、以下の手順が必要です。

  1. HikariCP のライブラリをプロジェクトに追加します。
  • Maven:
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>4.0.3</version>
</dependency>
  • Gradle:
dependencies {
    implementation 'com.zaxxer:HikariCP:4.0.3'
}
  1. HikariCP の設定ファイルを作成します。
# HikariCP 設定ファイル

# データベース接続情報
jdbcUrl=jdbc:mariadb://localhost:3306/mydb
jdbcUsername=root
jdbcPassword=password

# 接続プール設定
maximumPoolSize=10
minimumIdle=1
connectionTimeout=30000
idleTimeout=600000
  1. HikariCP を使用してデータベースに接続します。
import com.zaxxer.hikari.HikariDataSource;

public class MariaDBExample {

    public static void main(String[] args) throws Exception {
        // HikariCP 設定ファイルの読み込み
        HikariConfig config = new HikariConfig("hikari.properties");

        // HikariDataSource の作成
        HikariDataSource dataSource = new HikariDataSource(config);

        // データベース接続の取得
        Connection connection = dataSource.getConnection();

        // ステートメントの作成
        Statement statement = connection.createStatement();

        // SQL クエリの発行
        String query = "SELECT * FROM users";
        ResultSet resultSet = statement.executeQuery(query);

        // 結果の処理
        while (resultSet.next()) {
            System.out.println("名前:" + resultSet.getString("name"));
            System.out.println("年齢:" + resultSet.getInt("age"));
        }

        // 接続のクローズ
        resultSet.close();
        statement.close();
        connection.close();

        // HikariDataSource のクローズ
        dataSource.close();
    }
}

Spring Boot は、Java アプリケーション開発を簡潔化するフレームワークです。 Spring Boot を使用すると、以下のメリットがあります。

  • 複雑な設定を省略できる
  • 組み込みのスターターによって、データベース接続などの機能を簡単に利用できる

Spring Boot を使用して MariaDB に接続するには、以下の手順が必要です。

  1. Spring Boot プロジェクトを作成します。
  • Spring Initializr を使用して、プロジェクトを作成できます。
  1. MariaDB への依存関係を追加します。
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jdbc</artifactId>
    <version>2.7.0</version>
</dependency>
  1. アプリケーション設定ファイルを作成します。
# アプリケーション設定ファイル

spring.datasource.url=jdbc:mariadb://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
  1. @Entity アノテーションを使用して、エンティティクラスを作成します。
@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private Integer age;

    // ...
}
  1. @SpringBootApplication アノテーションを使用して、アプリケーションクラスを作成します。
@SpringBootApplication
public class MariaDBExampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(MariaDBExampleApplication.class, args);
    }

}
./mvnw spring-boot:run

Spring Boot は、データベース接続の管理


java mariadb


SQLインポート・エクスポートツールを使ってSQLiteデータベースをエクスポート・インポートする方法

ここでは、AndroidでSQLiteデータベースを簡単にエクスポート・インポートする方法を2つご紹介します。Room は、Androidでデータベースを扱うためのライブラリです。Roomを使用している場合は、以下の手順でデータベースファイルを直接コピーすることで、簡単にエクスポート・インポートできます。...


ORDER BY句で指定する列がSELECTリストに含まれていない場合の解決策

ORDER BY句で指定する列がSELECTリストに含まれていない上記のクエリは、customersテーブルからすべてのデータを取得し、last_name列で昇順にソートします。しかし、last_name列はSELECTリストに含まれていないため、エラーが発生します。...


【現役エンジニアが解説】jOOQ EXISTS句を使いこなしてSQLスキルをアップしよう!

jOOQを使用してSELECT EXISTS (サブクエリ)を作成するには、以下の手順に従います。サブクエリを作成します:EXISTS句を使用してサブクエリを囲みます:例:この例では、顧客テーブルから、注文テーブルに少なくとも1つの注文がある顧客のみを選択します。...


MariaDBでuuid()が似通った識別子を生成する問題を解決する方法

この問題の根本的な原因は、MariaDBが uuid() 関数の内部で乱数生成に RAND() 関数を使用していることです。RAND() 関数は、擬似乱数を生成する関数であり、真にランダムな値を生成するわけではないため、特定のパターンが発生する可能性があります。...