JNDIプログラム習作

目的

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

MySQLサーバの登録

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

JNDIプログラム

プロジェクトの作成

  • Eclipseを起動する。
  • ProjectExplorerを右クリックして[New] -> [Project...]を選ぶ。
  • [Web] / [Dynamic Web Project]を選び、[Next]を押下する。
  • 以下のように設定する。
    • [Project name] mywebapp
    • [Target runtime] Apache Tomcat v7.0
  • [Finish]を押下する。

JNDIリソースの設定

  • 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>
 

サーブレットの作成

  • プロジェクト配下の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());
         }
     }
     - HelloWorld.javaを右クリックして[Run As] -> [Run on Server]を選ぶ。
     - ブラウザの表示、コンソールの表示を確認する。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS