サーブレット・JSPメモ013:データソース・JNDIの利用
Tomcatでデータソース・JNDIを利用してデータベースに接続する場合、META-INF/context.xml に以下のように記述する(データベースはMySQL)。
Eclipseで動的WEBプロジェクトの場合、Server.xml にそのWEBアプリのContext要素があるので、そちらに Resource要素を書いてもよい。
<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」カテゴリの記事
- サーブレット・JSPメモ018:Struts:Struts設定ファイルを分割した際のパス(2012.04.04)
- サーブレット・JSPメモ017:Struts:Tilesの利用(2012.04.02)
- サーブレット・JSPメモ016:Struts:validator-rules.xml(2012.03.27)
- サーブレット・JSPメモ015:Struts:StrutsタグライブラリでInvalidCancelException(2012.03.27)
- サーブレット・JSPメモ014:タグライブラリの利用(2012.03.23)
The comments to this entry are closed.
« サーブレット・JSPメモ012:Eclipseで開発している場合のjarファイルを置く場所 | Main | 2012開幕戦予想布陣 #albirex #jubilo »
Comments