37
© 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice MySQL 5.0 MySQL 5.0 MySQL 5.0 MySQL 5.0 JDBC JDBC JDBC JDBCドライバ ドライバ ドライバ ドライバ基礎 基礎 基礎 基礎 Tomcat/ Tomcat/ Tomcat/ Tomcat/JBossAS JBossAS JBossAS JBossASからの からの からの からの接続方 接続方 接続方 接続方 日本ヒューレットパッカード株式会社 オープンソース・コンピテンシ・センター 2006831

MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

Embed Size (px)

Citation preview

Page 1: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

© 2006 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice

MySQL 5.0MySQL 5.0MySQL 5.0MySQL 5.0 JDBCJDBCJDBCJDBCドライバドライバドライバドライバ基礎基礎基礎基礎

Tomcat/Tomcat/Tomcat/Tomcat/JBossASJBossASJBossASJBossASからのからのからのからの接続方法接続方法接続方法接続方法

日本ヒューレットパッカード株式会社

オープンソース・コンピテンシ・センター

2006年年年年8月月月月31日日日日

Page 2: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

2 平成18年9月5日

目次

•JDBC

•J2EEサーバからMySQLへの接続方法−Tomcat

−JBossAS

•付録

−Javaのインストール手順

−Tomcatのインストール手順

−JBossASのインストール手順

Page 3: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

3 平成18年9月5日

概観 : J2EEサーバからMySQLの利用

コネクション

JDBC API Connector/J

コネクション

JDBC API Connector/J

コネクション

JDBC API Connector/J

コネクションプールコネクションプールコネクションプールコネクションプール

MySQL

JNDI

Javaアプリケーション(JSP/Servlet..etc)

J2EEサーバー

設定ファイル

JDBCドライバライブラリ(Connector/Jのjar)

DataSource

JDBC API Connector/J1. DataSourceを検索

2. コネクションを要求

コネクションを作成

3. SQL文送信

準備1. JDBCドライバをインストール

準備2. DataSource/コネクションプールの設定

3. SQL文送信

接続

接続

接続4. クローズ

Page 4: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

4 平成18年9月5日

目次

•JDBC•J2EEサーバからMySQLへの接続方法

−Tomcat

−JBossAS

•付録

−Javaのインストール手順

−Tomcatのインストール手順

−JBossASのインストール手順

Page 5: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

5 平成18年9月5日

DBJavaアプリケーション

Javaのののの世界世界世界世界

まずJDBC

• JavaアプリケーションからRDBMSに接続するにはJDBCを使う− JDBCとはJavaとRDBMSを繋ぐ仕組み

• Tomcat/JBossASは一種のJavaアプリケーション

• MySQLはRDBMS

JDBC

Tomcat/JBossASからからからからMySQLにににに接続接続接続接続するにはするにはするにはするには

JDBCをををを使用使用使用使用するするするする

Page 6: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

6 平成18年9月5日

JDBC/JDBCドライバとは?

• JDBCとは、JavaからRDBMSへの接続やSQL文を処理するための「API」、「インターフェース」。つまり、仕様仕様仕様仕様。

• JDBCドライバドライバドライバドライバとは、JDBCで決められた「インターフェース」を特定のRDBMS用向けに実装実装実装実装したもの。−通常はRDBMSベンダが実装、提供する

DBJavaアプリケーション

JDBCAPI仕様仕様仕様仕様

Javaのののの世界世界世界世界

JDBCドライバ実装実装実装実装

• JDBCのメリット− Javaアプリケーション側から、特定のRDBMSを意識する必要がなくなる

− Javaアプリケーションを変更せずに、RDBMSを変更することができる

Page 7: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

7 平成18年9月5日

Connector/J (こねくたー じぇい)

• MySQL用のJDBCドライバがConnector/J−MySQL AB(MySQL社)が提供

−最新公式版はConnector/J 5.0

− JDBC 3.0 仕様準拠

− Type 4 JDBCドライバ(Pure Javaで実装されている)

− もちろんオープンソース

− 「GPL」と「商用」のデュアルライセンス

MySQLJavaアプリケーション

JDBCAPI

Javaのののの世界世界世界世界

Connector/J

Page 8: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

8 平成18年9月5日

JDBCを使ったDB接続の実際:コネクション

コネクション

JDBC API JDBCドライバJavaアプリケーション

DataSource

JDBC API JDBCドライバ

1. コネクションを要求2. コネクション作成

DB

� 実際にJavaアプリケーションからJDBCを使用してRDBMSにアクセスするには、1. Javaアプリケーションが、DataSourceに対して、コネクションコネクションコネクションコネクション(java.sql.Connection)を要

求� コネクションとは実際にRDBMSに接続するJavaオブジェクト

2. DataSourceがコネクションコネクションコネクションコネクションをををを作成作成作成作成� この時点でコネクションがRDBMSへ接続する

3. Javaアプリケーションはコネクションコネクションコネクションコネクションをををを利用利用利用利用してしてしてして、、、、RDBMSににににアクセスアクセスアクセスアクセス

4. RDBMSへのアクセス終了後、コネクションコネクションコネクションコネクションををををクローズクローズクローズクローズしししし破棄破棄破棄破棄

2. 接続

3. SQL文送信

� コネクションコネクションコネクションコネクションのののの作成作成作成作成、、、、破棄破棄破棄破棄ににににコストコストコストコストがががが掛掛掛掛かるかるかるかる(処理処理処理処理がががが重重重重いいいい)− JavaアプリケーションアプリケーションアプリケーションアプリケーションからからからからRDBMSへへへへアクセスアクセスアクセスアクセスするたびにするたびにするたびにするたびにコネクションコネクションコネクションコネクションのののの作成作成作成作成、、、、破棄破棄破棄破棄をををを

行行行行うことはうことはうことはうことはパフォーマンスパフォーマンスパフォーマンスパフォーマンス低下低下低下低下のののの原因原因原因原因となるとなるとなるとなる

3. SQL文送信

4. クローズ 4. コネクション破棄

Page 9: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

9 平成18年9月5日

JDBCを使ったDB接続の実際:コネクションプール

� そこでコネクションプール� 複数のコネクションコネクションコネクションコネクションをををを予予予予めめめめ作成作成作成作成して貯めておく

� JavaアプリケーションがRDBMSにアクセスする際、コネクションプールからコネクションを取得する。(コネクションコネクションコネクションコネクションはははは作成作成作成作成しないしないしないしない)

� RDBMSに対して処理が終了すると、Javaアプリケーションはコネクションをクローズし、コネクションプールに返却される。(コネクションコネクションコネクションコネクションはははは破棄破棄破棄破棄しないしないしないしない)

� コネクションプールに返却されたコネクションは別のJavaアプリケーションによって再利用再利用再利用再利用される。

コネクション

JDBC API JDBCドライバ

コネクション

JDBC API JDBCドライバ

コネクション

JDBC API JDBCドライバ

コネクションプールコネクションプールコネクションプールコネクションプール

Javaアプリケーション

DataSource

JDBC API JDBCドライバ

2. コネクションを要求 DB

1. コネクションを作成しておく

1. 接続

1. 接続

1. 接続

3. SQL文送信

3. SQL文送信

4. クローズ

Page 10: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

10 平成18年9月5日

目次

•JDBC

•J2EEサーバからMySQLへの接続方法−Tomcat

−JBossAS

•付録

−Javaのインストール手順

−Tomcatのインストール手順

−JBossASのインストール手順

Page 11: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

11 平成18年9月5日

J2EEサーバからMySQLの利用手順

準備準備準備準備1. J2EEサーバにConnector/J(MySQL用JDBCドライバ)をインストール

2. MySQL用DataSourceとコネクションプールをJ2EEサーバの設定ファイルで定義

• 定義したDataSourceをJ2EEサーバによりJNDIツリーにバインドされる

利用手順利用手順利用手順利用手順1. アプリケーションがJNDIツリーを検索(lookup)して、MySQL用の

DataSourceを取得

2. 取得したDataSourceに対して、MySQLへのコネクションを要求

3. 取得したコネクションを利用してSQL文を送信

4. DB処理が終了したら、コネクションをクローズ

Page 12: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

12 平成18年9月5日

J2EEサーバからMySQLの利用するには

コネクション

JDBC API Connector/J

コネクション

JDBC API Connector/J

コネクション

JDBC API Connector/J

コネクションプールコネクションプールコネクションプールコネクションプール

MySQL

JNDI

Javaアプリケーション(JSP/Servlet..etc)

J2EEサーバー

設定ファイル

JDBCドライバライブラリ(Connector/Jのjar)

DataSource

JDBC API Connector/J1. DataSourceを検索

2. コネクションを要求

コネクションを作成

3. SQL文送信

準備1. JDBCドライバをインストール

準備2. DataSource/コネクションプールの設定

3. SQL文送信

接続

接続

接続4. クローズ

Page 13: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

13 平成18年9月5日

Connector/J のダウンロード• http://www.mysql.com/

• Developer Zone

• Downloads

• Drivers and Connectors

• MySQL Connector/J 5.0 [直接のURL]http://dev.mysql.com/downloads/connector/j/5.0.html

• Source and Binaries (zip)

• Download をクリックしてダウンロードを開始

� mysql-connector-java-5.0.3.zip

/tmpディレクトリディレクトリディレクトリディレクトリににににダウンロードダウンロードダウンロードダウンロードしたこととししたこととししたこととししたこととし、、、、展開展開展開展開しておきますしておきますしておきますしておきます。。。。

$ cd /tmp

$ jar xvf mysql-connector-java-5.0.3.zip

Page 14: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

14 平成18年9月5日

TomcatからMySQLの利用するには

コネクション

JDBC API Connector/J

コネクション

JDBC API Connector/J

コネクション

JDBC API Connector/J

コネクションプールコネクションプールコネクションプールコネクションプール

MySQL

JNDI

Javaアプリケーション(JSP/Servlet..etc)

Tomcat

server.xml

Connector/J のjarファイル

DataSource

JDBC API Connector/J1. DataSourceを検索

2. コネクションを要求

コネクションを作成

3. SQL文送信

準備1. Connector/Jをインストール

準備2. DataSource/コネクションプールの設定

3. SQL文送信

接続

接続

接続4. クローズ

Page 15: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

15 平成18年9月5日

Tomcat

•前提− Tomcat 5.5.17 が $CATALINA_HOME で設定されたディレクトリにインストールされているものとします。• CATALINA_HOME=/usr/local/tomcat/apache-tomcat-5.5.17

[Tomcatのののの起動起動起動起動]$ cd $CATALINA_HOME/bin$ ./startup.sh

[Tomcatのののの停止停止停止停止]$ cd $CATALINA_HOME/bin$ ./shutdown.sh

[起動確認起動確認起動確認起動確認]ブラウザで、http://<host_name>:8080/ にアクセス

−予めTomcat自体が正しく起動するか確認しておいて下さい。

Page 16: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

16 平成18年9月5日

Tomcat:Connector/J のインストール

$ cp ¥

> /tmp/mysql-connector-java-5.0.3/mysql-connector-java-5.0.3-bin.jar ¥

> $CATALINA_HOME/common/lib/

• Connector/J をTomcatにインストールします。−mysql-connector-java-5.0.3-bin.jar を

$CATALINA_HOME/common/lib ディレクトリにコピー

Page 17: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

17 平成18年9月5日

Tomcat:DataSource/コネクションプールの設定

<Host name=“localhost” appBase=“webapps“ ...>

<Context path=“” docBase=“ROOT“

debug=”5” reloadable=“true” crossContext=“true”>

<Resource

name=“jdbc/MySqlDS” auth=“Container“

type=”javax.sql.DataSource“

initialSize=”3“

maxActive=”10” maxIdle=“5” maxWait=“10000“

username="dbuser" password="dbpass“driverClassName="com.mysql.jdbc.Driver“url="jdbc:mysql://localhost:3306/mydb?characterEncoding=MS932"/>

</Context>

</Host>

• $CATALINA_HOME/conf/server.xml を編集します− <Host>要素の中に、次のような<Context>要素を追加します。

追加追加追加追加

Page 18: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

18 平成18年9月5日

Tomcat:ご注意

•以下の変更をTomcatに反映させるためには、Tomcatを再起動する必要があります

−Connector/J のインストール−server.xml を編集してDataSource/コネクションプールの設定

[Tomcatのののの停止停止停止停止]$ cd $CATALINA_HOME/bin$ ./shutdown.sh

[Tomcatのののの起動起動起動起動]$ cd $CATALINA_HOME/bin$ ./startup.sh

Page 19: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

19 平成18年9月5日

Tomcat:サンプルアプリケーション(1/2)

• list.jsp : mytable01テーブルのすべてのデータを表示<%@page contentType="text/html; charset=Windows-31J"%>

<%@page import="java.sql.*"%>

<%@page import="javax.sql.*"%>

<%@page import="javax.naming.*"%>

<html><body>

<h3>Server Info</h3>

<ul>

<li>J2EE Server : <%= application.getServletContextName() %></li>

<li>Servlet Container : <%= application.getServerInfo() %></li>

<%

String DS_NAME;

if (application.getServletContextName().indexOf("Tomcat") > 0) {

DS_NAME="java:comp/env/jdbc/MySqlDS"; //For Tomcat

} else {

DS_NAME="java:MySqlDS"; //For JBossAS

}

Connection conn = null;

Statement stmt = null;

try {

Context ctx = new InitialContext();

DataSource ds = (DataSource)ctx.lookup(DS_NAME);conn = ds.getConnection();DatabaseMetaData md = conn.getMetaData();

out.println("<li>Database : " + md.getDatabaseProductName() + " "

+ md.getDatabaseProductVersion() + "</li>");

out.println("<li>JDBC Driver : " + md.getDriverName() + " "

+ md.getDriverVersion() + "</li>");

out.println("</ul>");

DataSourceのJNDI名を設定

DataSourceを検索

DataSourceからコネクションを取得

Page 20: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

20 平成18年9月5日

Tomcat:サンプルアプリケーション(2/2)

out.println("<h3>SELECT * FROM mytable01;</h3>");

stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM mytable01");out.println("<table border=¥"1¥">");

out.println("<tr><td>id</td><td>last_name</td><td>first_name</td></tr>");

while(rs.next() != false) {int id = rs.getInt(1);String last_name = rs.getString(2);String first_name = rs.getString(3);out.println("<tr><td>" + id + "</td>" +

"<td>" + last_name + "</td>" +"<td>" + first_name + "</td></tr>");

}out.println("</table>");

} catch(NamingException ne) { ne.printStackTrace();

} catch(SQLException se) { se.printStackTrace();

} finally {

try {

if (stmt != null) { stmt.close(); }

} catch(SQLException se) { se.printStackTrace(); }

try {

if (conn != null) { conn.close(); }

} catch(SQLException se) { se.printStackTrace(); }

} //finally

%>

</body>

</html>

コネクションを経由でSQL文を送信

コネクションをクローズ

Page 21: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

21 平成18年9月5日

Tomcat:サンプルアプリケーションのデプロイ

$ cp /tmp/list.jsp $CATALINA_HOME/webapps/ROOT/

• list.jsp を Tomcat の ROOTアプリケーションにデプロイします。− list.jsp を $CATALINA_HOME/webapps/ROOT/ にコピー

Page 22: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

22 平成18年9月5日

Tomcat:サンプルアプリケーションの実行

• Webブラウザで次のURLにアクセスします

[Tomcatのののの起動起動起動起動]$ cd $CATALINA_HOME/bin$ ./startup.sh

もしTomcatが停止中の場合は起動してください。

http://<host_name>:8080/list.jsp

Page 23: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

23 平成18年9月5日

JBossASからMySQLの利用するには

コネクション

JDBC API Connector/J

コネクション

JDBC API Connector/J

コネクション

JDBC API Connector/J

コネクションプールコネクションプールコネクションプールコネクションプール

MySQL

JNDI

Javaアプリケーション(JSP/Servlet..etc)

JBossAS

mysql-ds.xml

Connector/J のjarファイル

DataSource

JDBC API Connector/J1. DataSourceを検索

2. コネクションを要求

コネクションを作成

3. SQL文送信

準備1. Connector/Jをインストール

準備2. DataSource/コネクションプールの設定

3. SQL文送信

接続

接続

接続4. クローズ

Tomcat (Servletコンテナ)

Page 24: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

24 平成18年9月5日

JBossAS

•前提− JBossAS 4.0.4.GA が $JBOSS_HOME で設定されたディレクトリにインストールされているものとします。• JBOSS_HOME=/usr/local/jboss/jboss-4.0.4.GA

[JBossASのののの起動起動起動起動]$ cd $JBOSS_HOME/bin$ ./run.sh

[JBossのののの停止停止停止停止](起動したターミナルで) Ctrl+Cもしくは、別ターミナルで、$ cd $JBOSS_HOME/bin$ ./shutdown.sh

[起動確認起動確認起動確認起動確認]ブラウザで、http://<host_name>:8080/ にアクセス

−予めJBossAS自体が正しく起動するか確認しておいて下さい。

Page 25: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

25 平成18年9月5日

JBossAS:Connector/J のインストール

$ cp ¥

> /tmp/mysql-connector-java-5.0.3/mysql-connector-java-5.0.3-bin.jar ¥

> $JBOSS_HOME/server/default/lib/

• Connector/J をJBossASにインストールします。− mysql-connector-java-5.0.3-bin.jar を

$JBOSS_HOME/server/default/lib ディレクトリにコピー

Page 26: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

26 平成18年9月5日

JBossAS:ご注意

•以下の変更をJBossASに反映させるためには、JBossASをを再起動する必要があります

−Connector/J のインストール

[JBossASのののの停止停止停止停止](起動したターミナルで)Ctrl+Cもしくは、別ターミナルで、$ cd $JBOSS_HOME/bin$ ./shutdown.sh

[JBossASのののの起動起動起動起動]$ cd $JBOSS_HOME/bin$ ./run.sh

Page 27: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

27 平成18年9月5日

JBossAS:DataSource/コネクションプールの設定

$ cd $JBOSS_HOME/docs/examples/jca

$ cp mysql-ds.xml mysql-ds.xml.org

$ vi mysql-ds.xml

...

<datasources>

<local-tx-datasource>

<jndi-name>MySqlDS</jndi-name>

<connection-url>jdbc:mysql://localhost:3306/mydb</connection-url><driver-class>com.mysql.jdbc.Driver</driver-class>

<user-name>dbuser</user-name><password>dbpass</password>

...

</datasources>

$ cp mysql-ds.xml $JBOSS_HOME/server/default/deploy/

• JBossASをインストールすると、MySQL用のDataSource設定ファイルのサンプルもインストールされます− $JBOSS_HOME/docs/examples/jca/mysql-ds.xml

• DataSource/コネクションプールを有効にするには、このサンプル設定ファイルを編集して、JBossASにデプロイします。

Page 28: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

28 平成18年9月5日

JBossAS:サンプルアプリケーション(1/2)

• list.jsp : mytable01テーブルのすべてのデータを表示<%@page contentType="text/html; charset=Windows-31J"%>

<%@page import="java.sql.*"%>

<%@page import="javax.sql.*"%>

<%@page import="javax.naming.*"%>

<html><body>

<h3>Server Info</h3>

<ul>

<li>J2EE Server : <%= application.getServletContextName() %></li>

<li>Servlet Container : <%= application.getServerInfo() %></li>

<%

String DS_NAME;

if (application.getServletContextName().indexOf("Tomcat") > 0) {

DS_NAME="java:comp/env/jdbc/MySqlDS"; //For Tomcat} else {

DS_NAME="java:MySqlDS"; //For JBossAS

}

Connection conn = null;

Statement stmt = null;

try {

Context ctx = new InitialContext();

DataSource ds = (DataSource)ctx.lookup(DS_NAME);conn = ds.getConnection();DatabaseMetaData md = conn.getMetaData();

out.println("<li>Database : " + md.getDatabaseProductName() + " "

+ md.getDatabaseProductVersion() + "</li>");

out.println("<li>JDBC Driver : " + md.getDriverName() + " "

+ md.getDriverVersion() + "</li>");

out.println("</ul>");

DataSourceのJNDI名を設定

DataSourceを検索

DataSourceからコネクションを取得

Page 29: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

29 平成18年9月5日

JBossAS:サンプルアプリケーション(2/2)

out.println("<h3>SELECT * FROM mytable01;</h3>");

stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM mytable01");out.println("<table border=¥"1¥">");

out.println("<tr><td>id</td><td>last_name</td><td>first_name</td></tr>");

while(rs.next() != false) {int id = rs.getInt(1);String last_name = rs.getString(2);String first_name = rs.getString(3);out.println("<tr><td>" + id + "</td>" +

"<td>" + last_name + "</td>" +"<td>" + first_name + "</td></tr>");

}out.println("</table>");

} catch(NamingException ne) { ne.printStackTrace();

} catch(SQLException se) { se.printStackTrace();

} finally {

try {

if (stmt != null) { stmt.close(); }

} catch(SQLException se) { se.printStackTrace(); }

try {

if (conn != null) { conn.close(); }

} catch(SQLException se) { se.printStackTrace(); }

} //finally

%>

</body>

</html>

コネクションを経由でSQL文を送信

コネクションをクローズ

Page 30: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

30 平成18年9月5日

JBossAS:サンプルアプリケーションのデプロイ

$ cp /tmp/list.jsp ¥

> $JBOSS_HOME/server/default/deploy/jbossweb/tomcat55.sar/ROOT.war/

• list.jsp を JBossASのROOTアプリケーションにデプロイします。− list.jsp を

$JBOSS_HOME/server/default/deploy/jbossweb/tomcat55.sar/ROOT.war/ にコピー

Page 31: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

31 平成18年9月5日

JBossAS:サンプルアプリケーションの実行

• Webブラウザで次のURLにアクセスします

[JBossASのののの起動起動起動起動]$ cd $JBOSS_HOME/bin$ ./run.sh

もしJBossASが停止中の場合は起動してください。

http://<host_name>:8080/list.jsp

Page 32: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

32 平成18年9月5日

Connector/J に関するドキュメント

•基本情報− [英語] http://www.mysql.com/products/connector/j/

•技術情報(オンラインマニュアル)− [英語] http://dev.mysql.com/doc/refman/5.0/en/connector-j.html

Page 33: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

33 平成18年9月5日

付録

•Javaのインストール手順

•Tomcatのインストール手順

•JBossASのインストール手順

Page 34: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

34 平成18年9月5日

Javaのインストール手順

# cd /usr/local

# sh /tmp/jdk-1_5_0_08-linux-i586.bin

• JDK 5.0 のダウンロード− http://java.sun.com/− Popular Downloads: − Java SE− JDK 5.0 Update 8− Downloads− “Accept License Agreement”を押す− “Linux self-extraction file”を押しすとダウンロード開始− “jdk-1_5_0_08-linux-i586.bin” ファイル がダウンロードされる− /tpm 以下にダウンロードしたものとします

• JDK 5.0 のインストール

Page 35: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

35 平成18年9月5日

Tomcatのインストール手順

# mkdir /usr/local/tomcat

# cd /usr/local/tomat

# jar xvf /tmp/apache-tomcat-5.5.17.zip

# chown -R <user>:<group> apache-tomcat-5.5.17

$ export JAVA_HOME=/usr/local/jdk1.5.0.7

$ export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-5.5.17

$ cd $CATALINA_HOME/bin

$ chmod +x *.sh

• Tomcat のダウンロード− http://tomcat.apache.org/− Download− Tomcat 5.x− Binary Distributions− Core:− “zip” を押すとダウンロード開始− “apache-tomcat-5.5.17.zip” ファイル がダウンロードされる− /tpm 以下にダウンロードしたものとします

• Tomcat のインストール

Page 36: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

36 平成18年9月5日

JBossASのインストール手順

# mkdir /usr/local/jboss

# cd /usr/local/jboss

# jar xvf /tmp/jboss-4.0.4.GA.zip

# chown -R <user>:<group> jboss-4.0.4.GA

$ export JAVA_HOME=/usr/local/jdk1.5.0.7

$ export JBOSS_HOME=/usr/local/jboss/jboss-4.0.4.GA

$ cd $JBOSS_HOME/bin

$ chmod +x *.sh

• JBossAS のダウンロード− http://www.jboss.org/− Downloads− JBoss Application Server � Download− “Version”カラムが”4.0.4”の行の”Download”をクリック− “jboss-4.0.4.GA.zip”をクリック− 任意のミラーサーバの行の”Download”をクリック− “jboss-4.0.4.GA.zip” ファイル がダウンロードされる− /tpm 以下にダウンロードしたものとします

• JBossAS のインストール

Page 37: MySQL 5.0 JDBC ドライバ基礎 - h50146. · MySQL JNDI Java アプリケーション (JSP/Servlet..etc) Tomcat server.xml Connector/J の

37 平成18年9月5日