モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)

JavaでMySQLデータベースに接続する方法 (JDBC)

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2014/06/15
最終更新最終更新
2018/07/17
記事区分記事区分
一般公開

JDBC (Java Database Connectivity) は、MySQL や PostgreSQL といった数々のSQLデータベース、あるいはスプレッドシートなどのデータファイルにJavaからアクセスするためのAPIです。アクセス先ごとに専用のドライバが提供されているため、事前にインストールしておく必要があります。ここではMySQLへの接続を例に取り、基本的なサンプルプログラムを紹介します。

JDBCドライバのインストール

ダウンロード

まず、MySQLのダウンロードページにアクセスします。そのページ内にある、"MySQL Connectors" というリンクをクリックすると、MySQLのドライバ一覧が表示されます。ここではJavaのJDBCドライバが必要ですので、"Connector/J" をクリックします。表示されたダウンロードページのプルダウンから "Platform Independent" を選択し、zipまたはtarのいずれかをダウンロードおよび解凍してください。

インストール

解凍したフォルダを適当な場所、例えば "C:\Program Files\Java" 内に移動させ、環境変数CLASSPATHにjarファイル "mysql-connector-java-5.1.31-bin.jar" (ダウンロードしたバージョンによってファイル名は若干異なります) へのパス (例: "C:\Program Files\Java\mysql-connector-java-5.1.31\mysql-connector-java-5.1.31-bin.jar") をセミコロン区切りで追加することで、インストールが完了します。

SQLクエリを実行するサンプルプログラム

jdbc_sample.java

import java.sql.*;

class JdbcSample {
    public static void main (String[] args) {
        try {
            // 先程インストールしたMySQLのドライバを指定
            Class.forName("com.mysql.jdbc.Driver");

            // MySQLデータベースに接続 (DB名,ID,パスワードを指定)
            Connection conn =
                DriverManager.getConnection("jdbc:mysql://localhost/YOUR_DBNAME?"+
                                            "user=USER_ID&password=PASSWORD");
            // ステートメントを作成
            Statement stmt = conn.createStatement();

            // INSERT
            stmt.executeUpdate("INSERT INTO users (id, email) VALUES (1001,'someone01@example.com')");
            stmt.executeUpdate("INSERT INTO users (id, email) VALUES (1002,'someone02@example.com')");

            // DELETE
            stmt.executeUpdate("DELETE FROM users where id=1001");

            // UPDATE
            stmt.executeUpdate("UPDATE users SET email='updated@example.com' where id=1002");

            // SELECT
            ResultSet rset = stmt.executeQuery("SELECT id, email FROM users");
            while ( rset.next() ) {
                System.out.println(rset.getInt(1) + "\t" + rset.getString(2)); // ()内は列番号です
            }

            // 結果セットをクローズ
            rset.close();
            // ステートメントをクローズ
            stmt.close();
            // 接続をクローズ
            conn.close();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

実行結果例

javaソースファイルがutf-8で保存されている場合でかつ環境設定がutf-8でない場合は、"-encoding utf-8" でエンコーディングを明記する必要があります。

$ javac -encoding utf-8 jdbc_sample.java && java JdbcSample
1002	updated@example.com
0
詳細設定を開く/閉じる
アカウント プロフィール画像 (本文下)

Research Engineer

記事の執筆者にステッカーを贈る

有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

さらに詳しく →
ステッカーを贈る コンセプト画像

Feedbacks

Feedbacks コンセプト画像

    ログインするとコメントを投稿できます。

    関連記事

    • Spring Security フォームログインのサンプルコード
      Spring フレームワークによる Web アプリケーション開発で、ログイン処理を実装する際は Spring Security が便利です。ここでは特に Spring Boot で Web アプリケーションを開発する場合を対象とし、フォームによる ID/Password ログインを行うためのサンプルコードをまとめます。 公式ドキュメント [Spring Security チュートリアル](http...
      えびちゃんえびちゃん12/4/2019に更新
      いいねアイコン画像0
    • Java配列の宣言方法 (C/C++との違い)
      Javaの配列 Javaの配列宣言方法はC/C++と似ているようで若干異なる。 初期化しない場合 C/C++の int array[10]; はJavaでは int array[] = new int[10]; となる。同様にC/C++の int array[3][3]; はJavaでは int array[][] = new int[3][3]; となる。 初期化
      てんとうむしてんとうむし5/13/2018に更新
      いいねアイコン画像0
    • PlantUML による UML 図の描き方
      サムネイル画像-c788fffde5
      PlantUML はテキスト形式で表現されたシーケンス図やクラス図といった UML (Unified Modeling Language) 図の情報から画像を生成するためのツールです。簡単な使い方をまとめます。 インストール方法の選択 Atom や Eclipse のプラグインをインストールしてエディタから利用する方法、JAR をダウンロードして Java コマンドで実行する方法、Redmine ...
      kentakenta1/21/2020に更新
      いいねアイコン画像0
    • Akka HTTP サンプルコード (Scala)
      サムネイル画像-a98142497c
      Akka アクターを用いて実装された汎用 HTTP フレームワークです。Spray の後継です。コアモジュールである akka-http-core は 2016/2/17 に experimental が外れました。akka-http などのいくつかのサブモジュールは 2016/3/1 現在 experimental のままですが、基本的な
      雄太雄太10/7/2021に更新
      いいねアイコン画像0
    • Kestrel の使用例
      Kestrel は Message Queue (MQ) の実装のひとつです。一般に MQ はアプリケーション間やプロセス間、スレッド間で非同期に通信するために用いられます。メッセージの送信側は MQ に書き込めば受信側の応答を待たずに次の処理に非同期に進むことができます。Kestrel はわずか 2500 行程の Scala で実装されており JVM で動作します。MQ 自体はメモリ上に存在する...
      したくんしたくん10/12/2017に更新
      いいねアイコン画像0