| Index ソフト・ハード Java | DB利用 |
|
Databaseの利用 ・コンテキストルートのlibフォルダに配置したJDBCドライバを使い、DBを操作する。 ・DB利用の構成 JavaAP ~ JDBC ~ DBMSJDBC(Java DataBase Connectivity) ・JDBCはJavaアプリケーションに、特定のDBMSに依存しないインタフェースを提供 ・JDBCの構成 JDBC API ~ JDBCドライバマネージャ ~ JDBCドライバ API ~ JDBCドライバ・JDBC API Java標準ライブラリ(JavaAPI)含まれる。 DBMSへの汎用的アクセスを提供 プログラマは、java.sql パッケージ内のクラスを使い、DBにアクセス・JDBCドライバマネージャ 利用可能なJDBCドライバを管理し、適切なJDBCドライバを用いてDBに接続する。 java.sql.DriverManager クラス JDBCドライバとJDBCドライバマネージャを分けて、DBMSに依存しない環境を提供 JavaAPとのインタフェース(JDBC API)を持つ。・JDBCドライバ 実際にDBに接続し、その後のDBアクセスを実行 JDBCドライバマネージャとのインタフェース(JDBCドライバ API)を持つ。 インタフェースの種類に応じてタイプ1~4がある。JDBCを利用したデータベース操作 ・データベースに接続 ・SQLステートメントの用意 ・SQLステートメントの実行 ・実行結果の受け取り ・データベースの切断 WebコンテナにおけるDatabaseの接続 ・java.sql.DriverManagerクラスを使うDatabase接続 Webコンテナ内から、DriverManager.getConnectionメソッドを呼び出す。 事前に、使用するドライバに対応するクラス名をClass.forNameメソッドで指定する。・データソースを使うDatabase接続 Webコンテナによってコネクションプーリングが行われる。SQLステートメントの用意 ・ConnectionオブジェクトのprepareStatementを用いる。 引数として、あらかじめプレースホルダを含んだSQL文を指定できる。 createStatementでもよい。(SQLインジェクション攻撃のリスク大)SQLステートメントの実行 ・StatementオブジェクトのexecuteQueryを用いる。 実行結果の受け取り ・ResultSetオブジェクトとして返される。 Databaseを利用したレスポンスの生成 ・DBから取得した情報を扱いやすいオブジェクトに変換し、適切なスコープに格納する。 ・スコープに格納された情報を取得して、レスポンスを生成 ・DTO トランザクション ・関連する複数の処理をひとまとめにしたもの ・トランザクションに含む複数の処理は、全て実行するか、すべて実行しないようにする。 トランザクション制御 ・Connectionの確率 ・自動コミットモードの無効化 デフォルト:有効
・トランザクション処理・コミット/ロールバック ・Connectionのクローズ DAO(Data Access Object) ・データベースアクセス部分のコードを分離して実装 必要なデータにアクセスするためのメソッドを定義・発生する可能性がある例外の処理を、すべてメソッドの呼び出し元に任せる。 ConnectionManager ・データベースへの接続(コネクション)を取得、管理する。 ・「データベースへの接続」と「その他の操作」分離 ・コネクションプーリングで処理時間の軽減 DTO(Data Transfer Object) ・ひとまとまりのデータの受け渡しを目的としたクラス ・データを格納するフィールドと、それらにアクセスするためのメソッドを定義 ゲッター、セッター |
| All Rights Reserved. Copyright (C) ITCL | |