Java JDBC サンプル jar 読み込み 設定

今回は、JDBC ドライバ / コネクタを使用してデータベースに接続する方法のメモです。
・フレームワークなし
・ORMなし
・GradleもMavenなし(jarをダウンロードしてきて読み込ませる)
・IDEはIntelliJをベースにメモしますが、jarの追加部分は、Eclipseも記載してみたいと思います。
・データベースは、MariaDBベースでメモしていますが、他のRDBも同じ要領で行えると思います。
・データベースはすでに用意されている前提
以下のような簡単なDBテーブルの内容をSELECTクエリ実行してみます。

CREATE TABLE exchange (
    id bigint(20) NOT NULL AUTO_INCREMENT,
    currency ENUM('JPY', 'EUR', 'USD'),
    rate bigint(3) DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    deleted_at TIMESTAMP DEFAULT NULL,
    PRIMARY KEY (`id`)
);

INSERT INTO exchange (currency, rate) VALUES ('EUR', 172);
INSERT INTO exchange (currency, rate) VALUES ('USD', 160);

Sample SQL Java JDBC

環境

  • macOS:Sonoma 14.4
  • Docker:20.10.12
  • Docker Desktop:4.5.0 (74594)
  • docker-compose:1.29.2, build 5becea4c
  • IntelliJ:2023.1.7 (Ultimate Edition)
  • Eclipse:2022-06 (4.24.0)

動作バージョン

  • Java SDK:corretto-17(IntelliJ)、JavaSE-17(Eclipse)、
  • MariaDB:mariadb:11.1.3-jammy(Docker Container)
  • JDBC コネクタ:Connector/J 9.0

JDBC コネクタ jar取得

MariaDBで試しますが、MySQLのJDBCコネクタで実行可能なので、MySQLのものを利用します。

接続するデータベースに応じてダウンロードして下さい。
・MySQL コネクタ
https://www.mysql.com/jp/products/connector/

・Oracle JDBC Driver
https://www.oracle.com/jp/database/technologies/appdev/jdbc-downloads.html

以下は、MySQLの例です。
MySQL JDBC Connector Download
ダウンロードページに遷移して、ダウンロードを行います。
私はzipの方が展開しやすいので、zipをダウンロードしました。
MySQL JDBC Connector Download
ダウンロードボタンをクリックすると、ログインを促されますが、
面倒な場合、No thanks, just start my download.をクリックします。
MySQL JDBC Connector Download

zipがダウンロードされます。

MySQL JDBC Connector Download
READMEなどが含まれております。動作を確認するだけであれば、
mysql-connector-j-9.0.0.jarだけあれば十分です。

MySQL JDBC Connector Download


jarファイル プロジェクト設定

取得したJDBCのjarをプロジェクトで利用できるように設定します。

IntelliJ

jarファイルは読み込まれればどこに置いておいても平気だと思いますが、
今回は分かりやすく、プロジェクトルートにコピーしておきます。

IntelliJ JDBC jar settings

プロジェクトのところで右クリックメニュー -> Open Module Settings

IntelliJ JDBC jar settings

Librariesのところで、+ プラスマークを押して、jarを追加後、OKボタンを押します。

IntelliJ JDBC jar settings

Eclipse

Eclipseもjarを読み込める場所に配置。今回は分かりやすくプロジェクトルート。

Eclipse JDBC jar settings

プロジェクト右クリックメニュー -> ビルド・パス -> 外部アーカイブの追加
ここでjarを指定して読み込ませます。

Eclipse JDBC jar settings

正しく読み込まれれば、参照ライブラリーに追加されます。

Eclipse JDBC jar settings


サンプル プログラム

以下の、簡単なサンプルプログラムを実行して、
DBアクセスできているか確認します。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello world! ------------------");

        // データベース接続情報
        String url = "jdbc:mysql://localhost:3107/BDMenu";
        String user = "maria_db_1_docker";
        String password = "maria_db_1_docker_pass";

        // JDBC処理用
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try {
            // JDBCドライバの登録
            Class.forName("com.mysql.cj.jdbc.Driver");

            // データベース接続の確立
            conn = DriverManager.getConnection(url, user, password);

            // SQLステートメントの作成
            stmt = conn.createStatement();

            // SQLクエリの実行
            String sql = "SELECT * FROM exchange WHERE deleted_at IS NULL";
            rs = stmt.executeQuery(sql);

            // 実行結果の確認
            while (rs.next()) {
                int id = rs.getInt("id");
                String currency = rs.getString("currency");
                long rate = rs.getLong("rate");

                // データの表示
                System.out.println("ID: " + id + ", currency: " + currency + ", rate: " + rate);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // リソースのクローズ
            try {
                if (rs != null) rs.close();
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

IntelliJ JDBC SQL SELECT Sample


今回のメモは以上となります。
手が空いた時に他のIDEなどもメモしたいと思います。

都内でエンジニアをやっています。 2017年に脱サラ(法人設立)しました。 仕事で調べたことや、気になったことをメモしています。
投稿を作成しました 169

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る