My Photo

« サーブレット・JSPメモ012:Eclipseで開発している場合のjarファイルを置く場所 | Main | 2012開幕戦予想布陣 #albirex #jubilo »

February 20, 2012

サーブレット・JSPメモ013:データソース・JNDIの利用

Tomcatでデータソース・JNDIを利用してデータベースに接続する場合、META-INF/context.xml に以下のように記述する(データベースはMySQL)。
Eclipseで動的WEBプロジェクトの場合、Server.xml にそのWEBアプリのContext要素があるので、そちらに Resource要素を書いてもよい。

context.xmlの例
<Context>
    <Resource name="jdbc/mysql" auth="Container"
        type="javax.sql.DataSource"
        username="java" password="password"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost/java_sample_db" />
</Context>

name は任意の名前。この名前を使ってデータソースを取得する。
auth を "Application" とすると認証はアプリ側で行うことになる。
username と password はデータベースに接続するためのユーザ名とパスワード。
driverClass はJDBCドライバのクラス名。
url は getConnection() で直接コネクションを取得するときのURLと同じ。

サンプルコード

package websample;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

public class DataSourceTest extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/plain");
		response.setCharacterEncoding("UTF-8");
		PrintWriter out = response.getWriter();

		try {
			InitialContext initialContext = new InitialContext();
			DataSource dataSource
				= (DataSource) initialContext.lookup("java:comp/env/jdbc/mysql");
			Connection conn = dataSource.getConnection();
			out.println("success: connection=" + conn);

		} catch (SQLException e) {
			throw new ServletException(e);
		} catch (NamingException e) {
			throw new ServletException(e);
		}
	}
}

javax.naming.InitialContext はJNDIを利用する際の窓口で、ファイルシステムにたとえるとルートディレクトリである。

関連する以前の記事:MySQLメモ002:JDBCによる接続

参考ページ:JavaによるWebアプリケーション入門

« サーブレット・JSPメモ012:Eclipseで開発している場合のjarファイルを置く場所 | Main | 2012開幕戦予想布陣 #albirex #jubilo »

サーブレット・JSP」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/54035084

Listed below are links to weblogs that reference サーブレット・JSPメモ013:データソース・JNDIの利用:

« サーブレット・JSPメモ012:Eclipseで開発している場合のjarファイルを置く場所 | Main | 2012開幕戦予想布陣 #albirex #jubilo »

March 2017
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof