O/R Mapping EJB 3.0 コース 第6回 1 ここでの目標 O/R Mapping の考え方がなぜ必要なのか 理解する 2 オブジェクト指向開発と データベース 3 問題点 オブジェクト指向開発では、どのように データを取り扱うのが良いのか? 4 オブジェクト指向プログラミン グ言語とRDB リレーショナルデータベース (Relational Database = RDB) のデータは、オブジェ クト指向プログラミング言語で表すこと はなかなか難しい そもそもデータの表現方法がまったく違う 例えば、RDBの主キーをオブジェクト指向言 語でどう表す? こうした違いを「インピーダンス・ミスマッ チ」と呼ぶ 5 オブジェクト指向データベース じゃあ、せっかくオブジェクト指向言語 を使っているんだから、データもオブ ジェクト指向データベースで管理してみ たら? インピーダンス・ミスマッチも起こらな いんじゃないの? 「…でも…」 6 やっぱりRDB オブジェクト指向データベースは、なかなか普 及しない (オブジェクト指向データベースと比べて)RDB は はやい 安定している スケーラビリティに優れている SQLという統一的なデータアクセス言語がある やはり、RDBが使われることが多い じゃあ、どうやってRDBを使う? 7 RDBを使ったシステム (Javaの場合) 8 JDBC (1) Connection con = ......; String select = "select title from books"; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(select); while (rs.next()) { String title = rs.getString("title"); } 9 JDBC (2) オブジェクト指向的でない テーブルの構造をあらかじめ知っている必要が ある SQLをそのまま利用している テーブルやSQLの変化に弱い 10 Data Access Object (DAO) パターン (1) BookDAO dao = new BookDAO(); List<Book> l = dao.searchBooks(word); for (Book b: l) { System.out.println(b.title); …… } 11 Data Access Object (DAO) パターン (2) データベースにアクセスするコードを DAO に 局所化する。 オブジェクト指向的 データベースの変更などにも強い JDBCはあいかわらず残っているが・・・ 12 O/R Mapping JDBCのコードは登場しない 基本的には、POJOを永続化させる 13
© Copyright 2024 ExpyDoc