| 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 | |