Download presentation
Presentation is loading. Please wait.
1
Javaによる Webアプリケーション入門 第8回
JDBC (2) Javaによる Webアプリケーション入門 第8回
2
ここでの内容 JDBC を使った Servlet について学ぶ。
JNDI と DataSource を使ったプログラミングスタイルについて学ぶ。 コネクション・プーリングの手法について学ぶ。
3
JDBC を使った Servletの コンパイル
次のパッケージはJ2SEには入っていない。 javax.servlet パッケージ javax.servlet.http パッケージ Tomcat にはこのパッケージが含まれているので、classpath に含めてコンパイル javac –classpath “%CATALINA_HOME%\common\lib\servlet.jar; %HSQLDB_HOME%\lib\hsqldb.jar” JDBCTestServlet.java
4
TomcatにWebアプリケーションを置く
%CATALINA_HOME/webapps/ に配置 ひとつのファイル (war ファイル) にまとめても良い。 test/ | |-- WEB-INF/ --- web.xml 必須 | |- classes/ Servlet ・Beanなどの | クラス | |- lib/ 使用するライブラリ |-- loop.jsp JSP
5
Tomcat への配置 Servlet はコンパイルして、WEB-INF/classes に置く。
JDBCドライバを WEB-INF/lib に置く。 WEB-INF/ --- web.xml |- classes/ --- LoopServlet.class |- lib/ hsqldb.jar (JDBCドライバ)
6
Connection の取得 JDBC を使うのは、まず Connection の取得が必要。
JNDI と DataSource を使う方法もある。
7
JNDI Java で ディレクトリサービス (LDAPなど) にアクセスするための API
抽象的な「名前」をキーにしてオブジェクトを取得できる。 オブジェクトの作成に必要な情報は設定ファイルに記述する。 JDBC, EJB, JavaMail などでも利用される。
8
サンプルプログラム // Context (ディレクトリ), InitailContext (ルート)
Context context = new InitialContext(); // 名前に対応する DataSource を取得 DataSource ds = (DataSource)context.lookup( "java:comp/env/jdbc/library"); // Connection を取得 // ドライバ名、URL、ユーザ名、パスワードは設定 // ファイルに Connection con = ds.getConnection();
9
JNDI を使うと何が良いのか? プログラムに記述するのは「名前」だけ。
JDBCドライバ、URL、ユーザ名、パスワードといった情報は server.xml や web.xml に記述する。 データベースを変更しても、設定ファイルの変更だけで済む。 プログラムの保守性が高まる。
10
web.xml の記述 <resource-ref>
<res-ref-name>jdbc/library</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
11
server.xml の記述 (1) %CATALINA_HOME%\conf フォルダにある。
Tomcat 全体に関する設定や、Webコンテナの実装に依存するような内容を記述 このファイルに、データベースへの接続に必要な情報を記述する。
12
server.xml の記述 (2) <Context path=“/test” docBase=“test” reloadable=“true”> <Resource name=“jdbc/library” auth=“Container” type=“java.sql.DataSource”/> <ResourceParams name=“jdbc/library”> (JDBCドライバ、URL、ユーザ名、パスワード) </ResourceParams> </Context>
13
Tomcat への配置 %CATALINA_HOME%\conf\server.xml にデータベースの設定を記述した。
そこで、JDBCドライバが含まれている jar ファイルを、%CATALINA_HOME%\common\lib にコピーする。
14
コネクション・プーリング Connection の取得 = 「重い」処理 コネクション・プーリング
アプリで Connection が close されたら元に戻す データベースに早くアクセスできる
15
DBCP Jakarta Project によるコネクション・プーリングの機能
Tomcat に組み込まれているので、server.xml と web.xml の編集だけで利用できる。 DBCP のクラスを操作することもできる JNDI / DataSource を利用する
16
server.xml の例 <Context path=“/test” docBase=“test” reloadable=“true”> <Resource name=“jdbc/library” auth=“Container” type=“java.sql.DataSource”/> <ResourceParams name=“jdbc/library”> (JDBCドライバ、URL、ユーザ名、パスワード) (ためておく Connection の数などを指定) </ResourceParams> </Context>
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.