JDBCとDB(データベース)を接続するのにかなり時間がかかりました。
そのためこの経験を忘れぬよう、ブログで復習します。
参考までにどうぞ。
それぞれの役割
それぞれが一体何の役割をしているのか、まずは定義をしっかりおさらいして把握していきましょう。
・JDBC
リレーショナル・データベース(および、ほとんどすべての表形式のデータ)にアクセスするための、標準Java API。Java言語でDBMSにアクセスする標準的手段(標準APIに含まれているーjava.sqlパッケージ)。
・JDBCドライバ
DBMSに対する直接的な制御処理を行うもの。データベースサーバへの接続や解放、SQL文の送信、実行結果の取得など。
・DBMS
データベース管理システム。データベースを操作するということは、DBMSに指示を送り操作するということ。そのために使う言語が、SQLです。
【大まかなステップはこうなります】
1.検索をSQLで命令!(JDBC、JDBCドライバ)
2.OK , Let's go!!(DBMS)
3.検索実行(DB)
4.結果を送信
基本的な記述
接続において基本的な記述です。
これぐらいは覚えておこうってな感じです。
SQLの場合
データの操作を命令する文
SELECT文 レコードを検索
INSERT文 レコードを追加
UPDATE文 レコードを変更
DELETE文 レコードを削除
この4つをおさえておけばOK!
JDBCの場合
いつもどおりJavaでクラスを作り、記述していきます。
使うクラスやインターフェースはこちら。
DriverManager ー DBMSへの接続準備を行う
Connection - DBMSへの接続や切断を行う
PreparedStatement - SQLの送信を行う
ResultSet - DBMSから検索結果を受け取る
SQLException - データベースに関するエラー情報の提供
接続してみる
接続にはH2 Databaseを使用します。
H2 Databaseとは!?
H2はJavaで開発されたSQLデータベースエンジン。本体は1つのJARファイルだけで構成されているので、このJARファイルを追加するだけで使用できる。機能が豊富で高性能、用途は学習や規模の小さい開発向け。
インストール方法やテーブルの作り方は省きます、
DBを作成
ではまず、DBを作るため、
SQL文をH2 Database内に記述して実行します。
1 2 3 4 5 6 7 8 9 10 |
CREATE TABLE SAMPLE_USER ( ID CHAR(6) PRIMARY KEY, NAME VARCHAR(100) NOT NULL, AGE INT NOT NULL ); INSERT INTO EMPLOYEE (ID,NAME,AGE) VALUES ('AAA111','lady',20); INSERT INTO EMPLOYEE (ID,NAME,AGE) VALUES ('BBB222','gentleman',30); |
するとデータができます。
JDBCドライバの設置
次に、JDBCドライバを設置します。
設置方法は簡単!
H2をインストールした際にダウンロードされたJARファイルを、
eclipseの動的プロジェクト、WEB-INF/lib以下にコピーします。
(JARファイルは私の場合、「C:\Program Files (x86)\H2\bin」にありました)
これでJDBCドライバが設置され、DBとJDBCプログラムが繋がります。
JDBCプログラムの作成
新たにクラスを作成し、記述していきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
//Database接続 import java.sql.Connection; public class Sample { public static void main(String[] args) { try (Connection connection = DriverManager.getConnection("jdbc:h2:~/test", "sa", ""); PreparedStatement ps = connection.prepareStatement("SELECT * FROM EMPLOYEE")) { try (ResultSet rs = ps.executeQuery()) { while (rs.next()) { System.out.println(rs.getString("id") + "," + rs.getString("name") + "," + rs.getString("age")); } } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } } } |
主なポイントは3つ。
・java.sqlをインポート
・getConnection("xxx","xx","xx") のファイル、ユーザー、パス名を間違えない
・prepareStatement("SELECT * FROM xxx") のテーブル名を間違えない
ここは押さえておけば、うまく実行できるはずです!
実行結果はこうなります。
1 2 |
AAA111,lady,20 BBB222,gentleman,30 |
これでJDBCとDBの接続ができました。
今後も精進していきます。