Java で、JDBC を使って MySQL にアクセスする方法

Java で MySQL にアクセスするには、MySQL 用の JDBC のドライバが必要である。このドライバは MySQL のサイトから入手できる (MySQL Connector/J とあるので、安定版または最新バージョンをダウンロードする)。

ダウンロードしたものを解凍すると、mysql-connector-java-x.x.xx-bin.jar というファイルがあるはずなので、これを (Linux の場合は) $JAVA_HOME/jre/lib/ext にコピーする。ここに JAR ファイルを置いておく限り、このドライバ (JAR ファイル) に対する CLASSPATH は特に設定する必要はない。

以下はデータベース中の users テーブルから、name と password という 2つのフィールドを読み出す例である (MySQLJDBCTest.java という名前で保存)。

import java.sql.*; public class MySQLJDBCTest {
public static void main(String[] args) {

    try {
        // ドライバをロード
        Class.forName("org.gjt.mm.mysql.Driver");

        // データベースへ接続
        String url = "jdbc:mysql:///データベース名?&user=ユーザー名&password=パスワード&"
                   + "useUnicode=true&characterEncoding=UTF-8";
        Connection con = DriverManager.getConnection(url);

        // SQL 文を生成
        Statement s = con.createStatement();
        String sql = "SELECT * FROM `users`";

        // クエリーを実行して結果セットを取得
        ResultSet rs = s.executeQuery(sql);

        // 検索された行数分ループ
        while(rs.next()){
            String name     = rs.getString("name");  // ユーザー名
            String password = rs.getString("pass");  // パスワード

            // 表示
System.out.println(name + " / " + password);
        }

        // データベースから切断
        s.close();
        con.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}
}

コンパイル

# javac MySQLJDBCTest.java

実行

# java MySQLJDBCTest