DataBaseに接続 (JDBC & Servlet)

データを検索


  1. 「データを検索するページ」を作る。
    作るファイルは2つ
    ファイル名 機能
    servlet_database.html 入力フィールドと「データを検索」ボタンを配置したページ
    Servlet_select_data.java をデータベースからデータを検索するServlet
    idを指定し、一致したものを表形式で表示する。
    id=0のときは、全てのデータを表形式で出力する。
    失敗したときは"Data selection fail"

  2. 入力フィールド
    データの入力には、inputタグを使う。typeはtext。
    nameは任意の名前を付けてよいが、可読性を考慮し、フィールド名と同じにする。
    内容 データベース 入力ページ
    フィールド名 tag type name 入力する値
    出席番号 id int input text id 整数

  3. 「データを検索する」ボタン
      <form method="POST" action="http://localhost:8080/servlet_database/Servlet_select">
        <fieldset>
        <legend>データを検索する</legend>
        出席番号 <input size="20" type="text" name="id"><br>
        <input type="submit" value="データを検索する">
        </fieldset>
      </form>
      
    servlet_database.htmlとServlet_selectが同じディレクトリにある場合、http://localhost:8080/servlet_database/は不要です。
  4. データを検索するServlet
    【注意】
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.sql.*;
    /*
     * 作成日: 2004/06/28
     *
     * この生成されたコメントの挿入されるテンプレートを変更するため
     * ウィンドウ > 設定 > Java > コード生成 > コードとコメント
     */
    
    /**
     * @author j00300
     *
     * この生成されたコメントの挿入されるテンプレートを変更するため
     * ウィンドウ > 設定 > Java > コード生成 > コードとコメント
     */
    public class Servlet_select extends HttpServlet {
    
            /* (非 Javadoc)
             * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
             */
            protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1)
                    throws ServletException, IOException {
                    // TODO 自動生成されたメソッド・スタブ
                    //super.doPost(arg0, arg1);
                    String msg="" ;
                    try {
                      String id   = arg0.getParameter("id")   ;// 出席番号を取得
    
                      Class.forName("org.postgresql.Driver");
                      Connection con = DriverManager.getConnection( "jdbc:postgresql://10.30.2.29:5432/j00300_01","j00300","xxxxxxxx") ;
                      Statement st = con.createStatement() ;
                      String sql ;
                      if (id.equals("0")) {
                            sql = "SELECT * FROM sample_01 ;" ;
                      } else {
                            sql = "SELECT * FROM sample_01 WHERE id=" + id +  ";" ;
                      }
                      ResultSet rs = st.executeQuery(sql) ;
    
                      msg  = "<table border=\"1\"><tr><td>id</td><td>name</td></tr>" ;
          
                      while(rs.next()) {
                            msg += "<tr>";
                            msg += "<td>" + rs.getString("id")   + "</td>";
                            msg += "<td>" + rs.getString("name") + "</td>" ;
                            msg += "</tr>" ;
                      }
                      msg += "</table>" ;
                    }
                    catch (Exception ex) {
                      msg = "Data selection fail.<br>" ;
                      msg += ex.toString();
                      msg += "<br>" ;
                    }               
                    arg1.setContentType("text/html; charset=UTF-8");
                    java.io.PrintWriter out = arg1.getWriter();
                    out.println("<html>");
                    out.println("<head>");
                    out.println("<title>DataBaseに接続 (JDBC &amp; Servlet)データを検索する</title>");
                    out.println("</head>");
                    out.println("<body>");
                    out.println("DataBaseに接続 (JDBC &amp; Servlet)データを検索する");
                    out.println("<hr>");
                    out.println(msg);
                    out.println("<br><br><hr>");
                    out.println("<a href=\"../servlet_database.html\">DataBaseに接続 (JDBC &amp; Servlet)</a>");
                    out.println("</body>");
                    out.println("</html>");
            }
    }

eclipse logoEclipse DataBaseに接続 (JDBC & Servlet)