MySQLの常識を知りセットアップしてJSPからDB操作:Webアプリの常識をJSPとStrutsで身につける(8)(3/4 ページ)
本連載は、JSP/サーブレット+StrutsのWebアプリケーション開発を通じて、Java言語以外(PHPやASP.NET、Ruby on Railsなど)の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です
■Javaファイル上で、DB接続はどのように行われているのか
次に、「C:\PKG\Hello\WEB-INF\src」配下に「login」を作成して、下記のJavaファイル「LoginAction.java」を作成してください。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ここで、今回のLoginAction.javaのデータベースのアクセス処理について説明します。まず、初期値としてクラスや各種インターフェイスを定義します。
クラス/ インターフェイス名 |
概要 | |
---|---|---|
InitialContext | ネーミング操作を実行するための開始コンテキストで、コンテキストを基準にしている | |
DataSource | 物理データソースへの接続に対する情報を保持するためのインターフェイス | |
Connection | DBへの接続のために使用するオブジェクト | |
PreparedStatement | プリコンパイルされたSQL文を表すオブジェクト | |
ResultSet | DBから取得した結果を格納できるオブジェクト。DBに照会する文を実行することによって生成される |
次に、JDBCドライバの情報をTomcatの設定ファイル「server.xml」のコンテキスト(Context)から取得します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
JDBCドライバの情報の情報を使用して、DBへアクセスします。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
DBにアクセスした状態で、SQL文を作成してIDを条件にセットし、実行した結果を取得します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
SQL文の「?」は引数を意味し、setStringメソッドで引数をセットしています。また、PreparedStatementは通常のStatementとは異なり、事前にコンパイルされたSQL文を使用するので、Statementよりも処理が高速です。詳細は、記事「準備済みSQL命令でデータベースアクセスを効率化する」を参照してください。
注意! 「DBとの切断は必ず行いましょう」
注意すべきポイントとして、DB操作の際はエラー発生の有無にかかわらず、必ずDBとの切断を行わなければなりません。今回は、例外処理の「finally」を使用してDBとの切断を行っています。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
本稿では詳細まで解説しませんが、finally内の処理を含めたDBの切断はとても重要なことですので、記事「データベースに接続したら後始末は確実に」を参照してください。
次ページではいよいよ、DBと連携したWebアプリケーションを実行してみます。
Copyright © ITmedia, Inc. All Rights Reserved.