DataBaseに接続 (JDBC & Servlet)

データを入力


  1. 「データベースへデータを入力するページ」を作る。
    作るファイルは2つ
    ファイル名 機能
    servlet_database.html 入力フィールドと「データを入力」ボタンを配置したページ
    Servlet_insert_data.java データをデータベースに追加するServlet
    データベースに追加できたときは、"1 line insert successfully."
    失敗したときは"Data insert fail"

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

  3. 「テーブルをつくる」ボタン
    <form method="POST" action="http://localhost:8080/servlet_database/Servlet_insert_data">
      <fieldset>
      <legend>データを入力する</legend>
        出席番号 <input size="20" type="text" name="id"><br>
        氏  名 <input size="20" type="text" name="name"> <br>
        <input type="submit" value="データを入力する">
      </fieldset>
    </form>
      
    servlet_database.htmlとServlet_insert_dataが同じディレクトリにある場合、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_insert 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")   ;// 出席番号を取得
                              String name = arg0.getParameter("name") ;// 氏名を取得
    //                              name = new String( name.getBytes("8859_1"),"EUC_JP") ; //日本語の処理 (EUC-JPで入力したとき)
                              name = new String( name.getBytes("8859_1"),"UTF-8") ; //日本語の処理
    
                              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 = "INSERT INTO sample_01 VALUES (" + id +  ",'" + name +"');" ;
                              int result = st.executeUpdate(sql) ;
    
                              msg=Integer.toString(result) + " line insert successfully.<br>" ;
                              msg += "id=" + id + "&amp; name=" + name ;
                            }
                            catch (Exception ex) {
                              msg = "TABLE creation 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) DataBaseに接続 (JDBC & Servlet)データを検索