Databaseの利用
  ・コンテキストルートのlibフォルダに配置したJDBCドライバを使い、DBを操作する。
  ・DB利用の構成
JavaAP ~ JDBC ~ DBMS

JDBC(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)
  ・ひとまとまりのデータの受け渡しを目的としたクラス
  ・データを格納するフィールドと、それらにアクセスするためのメソッドを定義
ゲッター、セッター