javaからインサート文を実行するのですが、データベースに反映されていません。
どこが間違っているかご教授お願いいたします。
コードJSP <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Servlet/JSP Samples</title> </head> <body> <p>追加する商品を入力くしてください。</p> <form action = "Insert" method = "post"> 商品名<input type = "text" name = "name"> 価格<input type = "text" name = "price"> <input type = "submit" value = "追加"> </form> </body> </html>
こちらの実行結果は追加に成功しましたになるのですが、、、
コードサーブレット package test; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement; import javax.naming.InitialContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; import tool.Page; /** * Servlet implementation class Insert */ @WebServlet("/Insert") public class Insert extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setCharacterEncoding("UTF-8");// PrintWriter out = response.getWriter(); Page.header(out); out.println("<meta charset = \"UTF-8\">");//HTML try{ InitialContext ic = new InitialContext(); DataSource ds = (DataSource)ic.lookup("java:comp/env/jdbc/localDB"); Connection con = ds.getConnection(); response.setCharacterEncoding("UTF-8");// String name = request.getParameter("name"); int price = Integer.parseInt(request.getParameter("price")); PreparedStatement st = con.prepareStatement("insert into product values(null,?,?)"); st.setString(1, name); st.setInt(2,price); int line = st.executeUpdate(); if(line > 0){ out.println("追加に成功しました。"); } st.close(); con.close(); }catch(Exception e){ e.printStackTrace(out); } Page.footer(out); } }
下記のコードで確認しても追加されていません。
コード 確認用サーブレット package test; //import tool.Page; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.naming.InitialContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; /** * Servlet implementation class All */ @WebServlet("/All") public class All extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //response.getWriter().append("Served at: ").append(request.getContextPath()); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); //Page.header(out); try{ InitialContext ic = new InitialContext(); DataSource ds =(DataSource)ic.lookup("java:comp/env/jdbc/localDB"); Connection con = ds.getConnection(); PreparedStatement st = con.prepareStatement("select * from product"); ResultSet rs = st.executeQuery(); out.println("<html>"); out.println("<head>"); out.println("<meta charset = \"UTF-8\">"); out.println("</head>"); out.println("<body>"); while(rs.next()){ out.println(rs.getInt("id")); out.println(":"); out.println(rs.getString("name")); out.println(":"); out.println(rs.getInt("price")); out.println("<br>"); } out.println("</body>"); out.println("</html>"); st.close(); con.close(); }catch(Exception e){ e.printStackTrace(out); } //Page.footer(out); } }
反映させるのには何か再起動だったりしないといけないのでしょうか?
その場合はどのようにやるのでしょうか?
初心者で質問が多いのですがどなたかご回答よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/18 00:14
2018/02/18 00:39
2018/02/18 00:43
2018/02/18 00:55