通过单击JSP中的“提交”按钮将数据插入MySQL数据库

时间:2015-09-04 10:11:29

标签: java html mysql jsp

以下代码是从数据库获取数据,通过单击HTML中的提交按钮,通过JSP更新数据并将数据设置到数据库。

 <%
    String CONN_STRING = "jdbc:mysql://localhost/pmsdb";
    String USERNAME = "dbuser";
    String PASSWORD = "dbpassword";

    Connection conn=null;
    ResultSet rs =null;
    ResultSet rs2 =null;

    Statement stmt=null;
    Statement stmt2=null;

    PreparedStatement pst=null;
    PreparedStatement pst2=null;
    PreparedStatement pst3=null;

    Class.forName("com.mysql.jdbc.Driver");

    conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD);

    String pno = request.getParameter("PONo");


    String sql = "SELECT * FROM purchaseorderinfo WHERE PONo='"+pno+"'";
    String sql2 ="SELECT * FROM itemspoinfo WHERE PONo='"+pno+"'";

    stmt = conn.createStatement();
    rs=stmt.executeQuery(sql);

    stmt2=conn.createStatement();
    rs2=stmt2.executeQuery(sql2);
    %>  

    <%
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD);


    if(request.getParameter("btnacc")!=null){

        //getting todaydate
        Date date = new Date();
        Timestamp timestamp = new Timestamp(date.getTime());  

        String sql3="UPDATE itemspoinfo SET AorD=1 WHERE PONo='"+pno+"'";
        pst = conn.prepareStatement(sql3);
        pst.execute();

        String sql4="INSERT INTO pointoinvoce (InvoiceDate, Company, ItemName, Qty, Price, PONo) VALUES (?,?,?,?,?,?)";
        pst2=conn.prepareStatement(sql4);

        int noofdrugs=0;

        while(rs2.next() && rs.next()){
           String name =rs2.getString("ItemName");
           String qty = rs2.getString("Qty");

           pst2.setTimestamp(1, timestamp);
           pst2.setString(2, rs.getString("Supplier"));
           pst2.setString(3, name);
           pst2.setString(4, qty);
           pst2.setString(5, rs2.getString("Price"));
           pst2.setString(6, pno);
           pst2.addBatch();
           noofdrugs++;

        }
        pst2.executeBatch();

    }

    if(request.getParameter("btnde")!=null){

        String sql5="UPDATE itemspoinfo SET AorD=1 WHERE PONo='"+pno+"'";
        pst3= conn.prepareStatement(sql5);
        pst3.execute();
    }
    %>
<div class="row">
<div class="col-md-12">
<div class="citydetails">
    <div class="panel panel-primary">
      <div class="panel-heading">Purchase Order Details</div>
      <div class="panel-body">
          <table class="table">
              <thead>
                    <tr>
                        <th>Purchase Order <%=request.getParameter("PONo") %></th>
                    </tr>   
              </thead>
            <tbody>

                    <tr>

                        <td>
                            <% if(rs.next()){ %>
                            Purchase Order Date : <%= rs.getString("PODate") %><br>
                            Expected Date : <%=rs.getString("ExpectedDate") %> <br>
                            <% } %> 

                            <table class="table">
                                <tbody>
                                    <tr>
                                        <th>Items</th>
                                        <th>Quantity</th>
                                    </tr>
                                     <% while (rs2.next()){ %>
                                    <tr>

                                        <td><%=rs2.getString("ItemName")%></td>
                                        <td><%=rs2.getString("Qty")%></td>

                                    </tr>
                                    <% } %>


                                </tbody>

                            </table>



                        </td>

                    </tr>

            </tbody>

            </table>
                <button type="submit" name="btnacc" class="btn btn-primary accept" id="btnacc" onclick="clickabtn()">Accept</button>   
                <button type="submit" name="btnde" class="btn btn-primary accept" id="btnde" onclick="clickdbtn()">Decline</button>



      </div>
    </div>
</div>
</div>
</div>

但是当点击 btnacc 按钮时,数据库表中没有任何反应。

单击 btnde 按钮时,数据库表中没有任何反应。

这里有什么错误,请帮我解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的HTML必须由<form> ... </form>括起,他负责收集信息并发送服务器端。如果您没有指定提交的目标地址,它将假定它是当前页面(对于servlet来说效果很好),如果您没有指定方法,它将默认通过GET方法发送它。 / p>

检查servlet生命周期,你的代码实际上是JSP。在后端,它将生成不符合并发性的服务。这意味着你必须自己威胁这类问题。示例:同时完成的两个客户端请求可能导致对彼此提交进行更正和干扰,可能会在服务器端产生ConcurrentModicationException。

相关问题