Presentation is loading. Please wait.

Presentation is loading. Please wait.

Javaによる Webアプリケーション入門 第8回

Similar presentations


Presentation on theme: "Javaによる Webアプリケーション入門 第8回"— Presentation transcript:

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>


Download ppt "Javaによる Webアプリケーション入門 第8回"

Similar presentations


Ads by Google