* JNDIプログラム習作 [#q2c2fcba]
* JNDIサンプルコード [#q2c2fcba]

** 目的 [#ae55233f]
- JNDIを使ったデータベースプログラムを習作する。
- IDEとしてEclipseを使う。
- アプリケーションサーバとしてTomcatを使う。
- DBサーバとしてMySQLを使う。

** MySQLサーバの登録 [#e5ec8069]
- Eclipseを起動する。
- メニューより[Window] -> [Show View] -> [Servers]を選ぶ。
- Serversビューを選ぶ。
- [Tomcat v7.0 Server...]が登録されている事を確認する。なければ、右クリックして[New] -> [Server]を選び、登録する。

** JNDIプログラム [#w5f07f82]
*** プロジェクトの作成 [#ya3f4973]
- Eclipseを起動する。
- ProjectExplorerを右クリックして[New] -> [Project...]を選ぶ。
- [Web] / [Dynamic Web Project]を選び、[Next]を押下する。
- 以下のように設定する。
-- [Project name] mywebapp
-- [Target runtime] Apache Tomcat v7.0
- [Finish]を押下する。

*** JNDIリソースの設定 [#m1b5a802]
- ProjectExplorerからmywebappプロジェクトを選ぶ。
- プロジェクト配下のWebContent/META-INFを右クリックして[New] -> [File]を選ぶ。
- [File name]をcontext.xmlと入力し、[Finish]を押下する。
- context.xmlを開き、以下のように編集する。

 <?xml version="1.0" encoding="UTF-8"?>
 <Context>
    <Resource name="jdbc/mydatabase" 
              auth="Container"
              type="javax.sql.DataSource" 
              username="db_user" 
              password="db_passwd"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://my-db-server/mydb01?autoReconnect=true"
              validationQuery="select 1"
              maxActive="10" 
              maxIdle="4"/>
 </Context>
 
*** サーブレットの作成 [#pb429b2e]
- プロジェクト配下のJava Resources/srcを右クリックして[New] -> [Servlet]を選ぶ。
- 以下のように設定する。
-- [Java package] jp.sample.app
-- [Class name] HelloWorld
- [Finish]を押下する。
- HelloWorld.javaを開き、doGet()を以下のように編集する。

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     System.out.println("DEBUG: TEST");
     response.setContentType("text/html");
     PrintWriter out = response.getWriter();
     out.println("<html><body>THIS IS A TEST.</body></html>");
 
     try {
         //Class.forName("com.mysql.jdbc.Driver").newInstance();
         //Connection conn = DriverManager
         // .getConnection("jdbc:mysql://my-db-server/mydb01?" + "user=db_user&password=db_passwd");
         Context ctx = new InitialContext();
         DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mydatabase");
         Connection conn = ds.getConnection();
         Statement stmt = conn.createStatement();
         ResultSet rs = stmt.executeQuery("SELECT * FROM t1");
         while (rs.next()) {
             int id =- rs.getInt("id");
             System.out.println("ID: " + id);
         }
     } catch (Exception e) {
         System.out.println(e.toString());
     }
 }

*** 動作確認 [#r6c0ee39]
- HelloWorld.javaを右クリックして[Run As] -> [Run on Server]を選ぶ。
- ブラウザの表示、コンソールの表示を確認する。


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS