LoginSignup
4
3

More than 3 years have passed since last update.

JavaでDB接続をしてみる

Posted at

JavaでDBを操作するには

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

SQLドライバーを入手

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

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

プロジェクトに追加

解凍したSQLドライバーをプロジェクトに追加する。
Eclipseで作ったプロジェクトのWebContent->WEB-INF->libにドラッグ&ドロップ
以下のようになる。
スクリーンショット 2020-04-30 14.34.47.png

ビルドパスの構成を設定

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

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の接続は完了する。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3