通过单击按钮从输入插入数据库

时间:2018-06-12 10:30:07

标签: java mysql jsp

我已完成整个编码,但数据未插入数据库

Class.forName("com.mysql.jdbc.Driver").newInstance();
        Connection connection = 
        DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/userinfo?user=root&password=admin");
       Statement statement = connection.createStatement() ;
        resultset = statement.executeQuery("select * from item") ;

现在这是我完成连接的部分,我认为没关系,因为在第一部分,我显示数据库中的值,它正在工作

现在我已经在下一部分完成了这项工作,我已经从输入框

获取了输入值
   <input type="submit" value="RECEIVE"  style="width:100px; height:40px" 
     name="receive ">

现在&lt;%

   PrintWriter pw = response.getWriter();
    PreparedStatement pst = null;
    if(request.getParameter("receive")!=null)
    {
    String dob=request.getParameter("datepicker");
    String supplier=request.getParameter("supplier");
    String type=request.getParameter("type");
    String quantity=request.getParameter("quantity");
    String queryString = "INSERT INTO stock_quantity values(?,?,?,?)";
      pst  = connection.prepareStatement(queryString);
      pst.setString(2,dob);      
      pst.setString(3,supplier);
      pst.setString(4,type);
       pst.setString(5,quantity);
      int i = pst.executeUpdate();
      if(i!=0){
       %>
      <script language="javascript">
            alert("Send sucess");
      </script>
      <%    
   }
   else{
      %>
      <script language="javascript">
            alert("Enter all data");
      </script>
      <%    
   }
 }
 %>

数据未插入..在代码中找到问题

1 个答案:

答案 0 :(得分:0)

不要在第一个控制器中与db建立连接(在jsp的情况下),只需将数据发送到另一个控制器,然后就可以将其插入到db。您可以使用@Requestparam(“param”)获取单个参数,或使用@ModelAttribute(“name”)获取整个POJO对象(您将获得所有参数)。

所以你的html文件看起来像(在thymeleaf中)你需要将一些百里香的东西改成jsp:

<form action="#" th:action="@{/save}" th:object="${yourObject}" method="post">
                        <div>
                            <label for="quantity">quantity:</label>
                            <input type="quantity" th:field="*{quantity}">
                        </div>

                        <button type="submit">Submit</button>
                    </form>

你的第二个控制器:

@PostMapping("save")
    public String reset(@ModelAttribute(value = "yourObject") YourPOJOClass request) {
    //save to DB
    }

如果要接受参数而不是整个对象,请将名称参数添加到jsp / html 例如:

                        <div>
                            <label for="quantity">quantity:</label>
                            <input type="quantity" th:field="*{quantity}" name="quantity">
                        </div>

在控制器中你可以得到这样的参数:

@PostMapping("save")
    public String reset(@RequestParam("quantity") String quantity)