Java 在JSP中单击按钮插入MySQL数据库
下面的代码是将数据插入MySQL数据库 但代码并不是通过单击“发送”按钮将数据插入数据库Java 在JSP中单击按钮插入MySQL数据库,java,mysql,jsp,Java,Mysql,Jsp,下面的代码是将数据插入MySQL数据库 但代码并不是通过单击“发送”按钮将数据插入数据库 <% Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD); if(request.getParameter("send")!=null){ String scom=request.getPa
<%
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD);
if(request.getParameter("send")!=null){
String scom=request.getParameter("scompany");
String porderno=request.getParameter("pono");
String bdate=request.getParameter("date");
String drug1=request.getParameter("d1");
String qty1=request.getParameter("q1");
//getting todaydate
Date date = new Date();
Timestamp timestamp = new Timestamp(date.getTime());
String sql = "INSERT INTO purchaseorderinfo SET Supplier ='"+scom+"', PONo='"+porderno+"', ExpectedDate='"+bdate+"', PODate='"+timestamp+"' ";
pst=conn.prepareStatement(sql);
if((scom!=null && scom.length()>0)
&& (porderno!=null && porderno.length()>0)
&& (bdate!=null && bdate.length()>0)
&& (drug1!=null && drug1.length()>0)
&& (qty1!=null && qty1.length()>0)){
pst.execute();
%>
<script language="javascript">
alert("Send sucess");
</script>
<%
}
}
%>
0)
&&(porderno!=null&&porderno.length()>0)
&&(bdate!=null&&bdate.length()>0)
&&(drug1!=null&&drug1.length()>0)
&&(qty1!=null&&qty1.length()>0){
pst.execute();
%>
警报(“发送成功”);
这是我的发送按钮
<div class="col-md-8">
<form action="adminpg-purchaseorder.jsp" method="post" id="login-form" role="form" style="display: block">
<div class="form-group">
<div class="row">
<div class="col-sm-6 col-sm-offset-3">
<input type="submit" name="send" id="submit" tabindex="1" class="form-control btn btn-login" value="Send">
</div>
</div>
</div>
</form>
</div>
如何修复此代码以将数据插入数据库?您的
插入
查询错误。它类似于更新
查询。请更改它
String sql = "INSERT INTO purchaseorderinfo SET Supplier ='"+scom+"', PONo='"+porderno+"', ExpectedDate='"+bdate+"', PODate='"+timestamp+"' ";
到
总而言之:
我建议您将java代码从jsp文件中分离出来
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
String CONN_STRING = "jdbc:mysql://localhost/dbName";
Connection connection;
try{
String scom=request.getParameter("scompany");
String porderno=request.getParameter("pono");
String bdate=request.getParameter("date");
String drug1=request.getParameter("d1");
String qty1=request.getParameter("q1");
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD);
PreparedStatement pst = connection.prepareStatement("insert into purchaseorderinfo values(?,?,?,?,?)");
pst.setString(1,scom);
pst.setString(2,porderno);
pst.setString(3,bdate);
pst.setString(4,drug1);
pst.setString(5,qty1);
int i = pst.executeUpdate();
if(i!=0){
pw.println("<br>Data has been inserted");
}
else{
pw.println("failed!");
}
} catch (Exception e){
pw.println(e);
}
}
public void doPost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
response.setContentType(“text/html”);
PrintWriter pw=response.getWriter();
String CONN_String=“jdbc:mysql://localhost/dbName";
连接;
试一试{
字符串scom=request.getParameter(“scompany”);
字符串porderno=request.getParameter(“pono”);
字符串bdate=request.getParameter(“日期”);
字符串1=request.getParameter(“d1”);
字符串qty1=request.getParameter(“q1”);
Class.forName(“com.mysql.jdbc.Driver”);
conn=DriverManager.getConnection(conn_字符串、用户名、密码);
PreparedStatement pst=connection.prepareStatement(“插入到purchaseorderinfo值(?,,,?,?)”;
pst设置管柱(1,scom);
pst固定管柱(2,端口号);
pst.setString(3,b日期);
pst固定管柱(4,1);
pst.固定管柱(5,qty1);
int i=pst.executeUpdate();
如果(i!=0){
pw.println(“插入了数据”);
}
否则{
println(“失败!”);
}
}捕获(例外e){
pw.println(e);
}
}
需要进行以下更改
request.getParameter(“scompany”);
将返回null
请共享异常日志第一步是将其从jsp中删除(仅限于UI),并将所有实际java代码放在servlet中。在函数中,您从请求参数中获取值,但在表单中没有此类字段……没有错误显示@saurabhjunjunhunalayes我对这些值有单独的表单:(@Luffy我如何在不包含一个表单的情况下修复此问题?这不是唯一有助于OP解决其问题的更改。我已经更改了上述代码,但仍然没有将数据插入数据库@Harshit。)Shrivastava@tenten,即使您从表单中获取数据,也要进行检查!!
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
String CONN_STRING = "jdbc:mysql://localhost/dbName";
Connection connection;
try{
String scom=request.getParameter("scompany");
String porderno=request.getParameter("pono");
String bdate=request.getParameter("date");
String drug1=request.getParameter("d1");
String qty1=request.getParameter("q1");
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD);
PreparedStatement pst = connection.prepareStatement("insert into purchaseorderinfo values(?,?,?,?,?)");
pst.setString(1,scom);
pst.setString(2,porderno);
pst.setString(3,bdate);
pst.setString(4,drug1);
pst.setString(5,qty1);
int i = pst.executeUpdate();
if(i!=0){
pw.println("<br>Data has been inserted");
}
else{
pw.println("failed!");
}
} catch (Exception e){
pw.println(e);
}
}