JavaでDB接続をしてみる


JavaでDBを操作するには

Javaで使うMySQLをドライバーを入手し、プロジェクトに追加する

SQLドライバーを入手

以下のURLにアクセスし、Select Operating System:の下にあるセレクトボックスをPlatform Independentにして
zipをダウンロードし、解凍する。(ダウンロード先はどこでもOK)
SQLドライバー

解凍したらjarファイルができる。

プロジェクトに追加

解凍したSQLドライバーをプロジェクトに追加する。
Eclipseで作ったプロジェクトのWebContent->WEB-INF->libにドラッグ&ドロップ
以下のようになる。

ビルドパスの構成を設定

`プロジェクト右クリック->ビルド・パス->ビルド・パスの構成を開き、ライブラリタブから外部JARの追加を選択し、先ほどWebContent->WEB-INF->libに追加したjarファイルを選択し、追加させる。
追加させた時の画面が以下の通り。

DBの接続確認

以下の実装でDB接続を図る

DBConnect.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBManager {
    public static Connection getConnection(){
        Connection con = null; // 初期化
        try{
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://localhost:ポート番号/データベース名","ユーザー名","パスワード");
            System.out.println("DB接続成功!!!");
            return con;
        }catch(ClassNotFoundException e){
            throw new IllegalMonitorStateException(); // クラスがなかった時の例外処理
        } catch (SQLException e) {
            throw new IllegalMonitorStateException(); // SQLでエラーが起きた時の例外処理
        }
    }
}
DBConnect.java
  Class.forName("com.mysql.jdbc.Driver");
  con = DriverManager.getConnection("jdbc:mysql://localhost:ポート番号/データベース名","ユーザー名","パスワード");
  System.out.println("DB接続成功!!!"); // 成功したら出力するようになっている なくてもOK
  return con; // 接続結果を返す

Class.forName("com.mysql.jdbc.Driver");

Classクラス

クラスクラス・・・w

すべてのクラスのスーパークラスである java.lang.Object クラスにgetClass()というメソッドが実装されており、サブクラスのインスタンス生成時に該当のサブクラスのClass情報をClassクラスのインスタンスとして生成し、保持します。

クラス読み込み用クラスみたいなイメージかな

forName("com.mysql.jdbc.Driver");

()内はクラス名 ここではSQLドライバーを指定している。

forName()することにより、DBドライバクラスがロードされ、staticイニシャライザが実行されます。DBドライバクラスは全て、java.sql.Driverを実装しており、各DBドライバクラスでは、staticイニシャライザでDriverManagerクラスというドライバを管理するクラスにDBドライバクラス自身を登録しに行くという処理を実施しています。

forNameでSQLドライバーを探しに行って勝手に登録してくれるみたい
参考:知ってるようで知らないClassクラス(基本編)

以上でDBの接続は完了する。