** 環境/前提条件 [#m8c43e1c]

- OS X 10.11 El Capitan
- Eclipse Java EE IDE for Web Developers - Version: 4.5.2 (Mars 2)
- Apache Tomcat 8.0.39
- MySQL 5.7.13
- データベース名: test
- テーブル名: users

 mysql> select * from users;
 +------+---------+-----------------+----------+
 | id   | name    | email           | password |
 +------+---------+-----------------+----------+
 |    1 | kimura  | kimura@foo.com  | kimpwd   |
 |    2 | tanaka  | tanaka@foo.com  | tanapwd  |
 |    3 | yoshida | yoshida@foo.com | yoshipwd |
 +------+---------+-----------------+----------+

** JDBCドライバのダウンロード [#k5dd6074]

- https://dev.mysql.com/downloads/connector/j/ へアクセス
- mysql-connector-java-5.1.40.tar.gz をダウンロード
&color(red){※}; インストール時にOracleアカウントでのログインが必要
&color(red){※}; ダウンロード時にOracleアカウントが必要

- 解凍フォルダ内の mysql-connector-java-5.1.40-bin.jar をTomcatのlibフォルダ配下へコピー

$ cp ~/Downloads/mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /Applications/apache-tomcat-8.0.39/lib/
 $ cp ~/Downloads/mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /Applications/apache-tomcat-8.0.39/lib/

** サンプルプロジェクト&Servlet作成 [#a6d0aae9]

- Dynamic Web Projectを新規作成
- プロジェクト名: DBSampleServlet
- Servletを新規作成
- クラス名: SelectSampleServlet
- Dynamic Web Projectを新規作成(プロジェクト名: DBSampleServlet)
- Servletを新規作成(クラス名: SelectSampleServlet)
- 事前に用意したusersテーブルからSELECTしてHTMLとして出力するサンプルプログラム

 import java.io.IOException;
 import java.io.PrintWriter;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.ArrayList;
 
 import javax.servlet.ServletException;
 import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 /**
  * Servlet implementation class SelectSampleServlet
  */
 @WebServlet("/SelectSampleServlet")
 public class SelectSampleServlet extends HttpServlet {
     private static final long serialVersionUID = 1L;
 
     /**
      * @see HttpServlet#HttpServlet()
      */
     public SelectSampleServlet() {
         super();
         // TODO Auto-generated constructor stub
     }
 
     /**
      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
      *      response)
      */
     @Override
     protected void doGet(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
         // TODO Auto-generated method stub
         java.sql.Connection conn = null;
         Statement stmt = null;
         ResultSet rs = null;
         ArrayList<String> list = new ArrayList<String>();
         try {
             Class.forName("com.mysql.jdbc.Driver");
             conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "hoge");
             stmt = conn.createStatement();
             rs = stmt.executeQuery("Select * from users");
             
             while (rs.next()) {
                 String s = "<td>" + rs.getInt(1) + "</td>" + "<td>" + rs.getString(2) + "</td>"
                         + "<td>" + rs.getString(3) + "</td>" + "<td>" + rs.getString(4) + "</td>";
                          + "<td>" + rs.getString(3) + "</td>" + "<td>" + rs.getString(4) + "</td>";
                 list.add(s);
             }
         } catch (Exception e) {
             // TODO: handle exception
             e.printStackTrace();
         } finally {
             if (rs != null) {
                 try {
                     rs.close();
                 } catch (SQLException sqlEx) {
 
                 }
             }
             if (conn != null) {
                 try {
                     conn.close();
                 } catch (SQLException sqlEx) {
 
                 }
             }
         }
         PrintWriter out = response.getWriter();
         out.println("<html>");
         out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">");
         out.println("<head><title>" + "Sample DB Servlet" + "</title></head>");
         out.println("<body>");
         out.println("<table border=1>");
         out.println("<tr><th>id</th>" + "<th>name</th>" + "<th>email</th>" + "<th>password</th></tr>");
         for (String str : list) {
             out.println("<tr>" + str + "</tr>");
         }
         out.print("</table>");
         out.println("</body>");
         out.println("</html>");
     }
 
     /**
      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
      *      response)
      */
     protected void doPost(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
         // TODO Auto-generated method stub
         doGet(request, response);
     }
 
 }

** Servlet実行 [#fb85125c]

- DBSampleServlet > Java Resources > src > SelectSampleServlet.java を選択
- 右クリック > Run As > Run on Server > Tomcat v8.0 Server
- http://localhost:8080/DBSampleServlet/SelectSampleServlet へアクセス
- HTMLのテーブル内にDBテーブル情報が出力されていることを確認



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