>> HOME >> FC5 MENU >> Javaからデータベースアクセス (MySQL)
Java で作成したプログラムから MySQL データベースへアクセスできるようにします。
Java で作成したプログラムからデータベースにアクセスするには JDBC というデータベースソフトごとに用意されたドライバを使用します。

1. Java 開発実行環境の構築
2. MySQL JDBC のインストール
1 ) MySQL JDBC の取得
2 ) MySQL JDBC のインストール
3. J2SE(Java 2 Platform Standard Edition) の設定
1 ) 環境変数に MySQL JDBC のパスを追加
2 ) 追加した環境変数の反映
4. サンプルプログラムの作成
1 ) データベースの作成
2 ) サンプルプログラムの作成
3 ) サンプルプログラムのコンパイル
4 ) サンプルプログラムの実行
1. Java 開発実行環境の構築
Java 開発実行環境の構築 は『Java Servlet/JSP サーバー (Tomcat) バイナリインストール編』を参照してください。
2. MySQL JDBC のインストール
1 ) MySQL JDBC の取得
直接ダウンロードが出来ませんので、以下の手順を実施します。
MySQLDeveloper Zone から、「Development with MySQL」 の 「Java / JDBC」 をクリックします。
MySQL Connector/JDBC」 の 「MySQL Connector/J」 をクリックします。
Source and Binaries (tar.gz)」 の 「Pick a mirror」 をクリックします。
名前や居住国など必要な項目を入力し、「mysql-connector-java-3.1.13.tar.gz」 をダウンロードします。
  (バージョンはその時の最新を取得してください。)
ダウンロードした、「mysql-connector-java-3.1.13.tar.gz」 を /root/ にコピーします。
2 ) MySQL JDBC のインストール
ダウンロードした、「mysql-connector-java-3.1.13.tar.gz」 を解凍し、その中にある 「mysql-connector-java-3.1.13-bin.jar」 を /usr/share/java/ に移動します。
[root@linux ~]# tar xvfz mysql-connector-java-3.1.13.tar.gz 
  :
  :
mysql-connector-java-3.1.13/src/testsuite/simple/SimpleTransformer.java
mysql-connector-java-3.1.13/src/testsuite/simple/StatementsTest.java
mysql-connector-java-3.1.13/src/testsuite/simple/TransactionTest.java
mysql-connector-java-3.1.13/src/testsuite/simple/TraversalTest.java
mysql-connector-java-3.1.13/src/testsuite/simple/UpdatabilityTest.java

[root@linux ~]# cd mysql-connector-java-3.1.13 

[root@linux mysql-connector-java-3.1.13]# mv mysql-connector-java-3.1.13-bin.jar /usr/share/java/ 

# ダウンロードしたファイルを削除
[root@linux mysql-connector-java-3.1.13]# cd 
[root@linux ~]# rm -f mysql-connector-java-3.1.13.tar.gz 

# 生成されたディレクトリを削除
[root@linux ~]# rm -rf mysql-connector-java-3.1.13 
3. J2SE(Java 2 Platform Standard Edition) の設定
1 ) 環境変数に MySQL JDBC のパスを追加
[root@linux ~]# vi /etc/profile 

  :
  :
for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        . $i
    fi
done

unset i
unset pathmunge

TOMCAT_HOME=/usr/local/tomcat
CATALINA_HOME=/usr/local/tomcat
export TOMCAT_HOME
export CATALINA_HOME
JAVA_HOME=/usr/java/jdk1.5.0_07
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib:$CATALINA_HOME/common/lib/servlet-api.jar
# CLASSPATH に ":/usr/share/java/postgresql-jdbc2.jar" を追加
CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java-3.1.13-bin.jar
export JAVA_HOME
export PATH
export CLASSPATH
2 ) 追加した環境変数の反映
[root@linux ~]# source /etc/profile 
4. サンプルプログラムの作成
1 ) データベースの作成
データベースの作成は『データベースサーバー (MySQL)』の「5. MySQL データベースの作成」を参照し、
6 ) データの挿入」までを行ってください。
2 ) サンプルプログラムの作成
[root@linux ~]# vi DbTest.java 

import java.sql.*;
class DbTest {
    public static void main(String[] args) {
        int id;
        String name;
        try {
            // JDBCドライバの登録
            String driver   = "org.gjt.mm.mysql.Driver";
            // データベースの指定
            String server   = "localhost";      // MySQLサーバ ( IP または ホスト名 )
            String dbname   = "testdb";         // データベース名
            String url = "jdbc:mysql://" + server + "/" + dbname + "?useUnicode=true&characterEncoding=EUC_JP";
            String user     = "fedora";         // データベース作成ユーザ名
            String password = "xxxxxxxxxx";     // データベース作成ユーザパスワード
            Class.forName (driver);
            // データベースとの接続
            Connection con = DriverManager.getConnection(url, user, password);
            // テーブル照会実行
            Statement stmt = con.createStatement ();
            String sql = "SELECT * FROM testtbl";
            ResultSet rs = stmt.executeQuery (sql);
            // テーブル照会結果を出力
            while(rs.next()){
               id = rs.getInt("num");
               name = rs.getString("name");
               System.out.println("ID:" + id);
               System.out.println("名前:" + name);
            }
            // データベースのクローズ
            rs.close();
            stmt.close();
            con.close();
        } catch (SQLException e) {
            System.err.println("SQL failed.");
            e.printStackTrace ();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace ();
        }
    }
}
3 ) サンプルプログラムのコンパイル
[root@linux ~]# javac DbTest.java 
4 ) サンプルプログラムの実行
[root@linux ~]# java DbTest 
ID:1
名前:鈴木 一太郎
Java プログラムがデータベースにアクセスし、データを取得することができました。