我的请求将在else if条件下更新查询,但数据库中的记录未更新 帮助我摆脱这种情况 单击更新按钮后,我没有任何错误,数据库记录未插入数据库中
// imports ...
public class RequestData extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter out = response.getWriter();
response.setContentType("text/html");
out.print("<html>");
out.print("<title>DataRetreving</title>");
out.print("<body>");
out.print("<table border=5 width=50% height=50% bgcolor=magenta align=center>");
out.print("<tr>");
out.print("<th><b>id</b></th>");
out.print("<th><b>name</b></th>");
out.print("<th><b>address</b></th>");
out.print("<th><b>action</b></th>");
out.print("<th><b>actionupdate</b></th>");
out.print("</tr>");
Driver driver = new OracleDriver();
try {
DriverManager.registerDriver(driver);
Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/XE", "system",
"india124");
Statement pst = connection.createStatement();
if(request.getParameter("action")!=null && "delete".equals(request.getParameter("action")))
{
int id=Integer.parseInt(request.getParameter("id"));
pst.executeUpdate("delete from employee where id="+id);
}
else if(request.getParameter("id") != null
&& request.getParameter("name") != null
&& request.getParameter("address") != null
&& request.getParameter("update") != null
&& !"update".equals(request.getParameter("actionupdate")))
{
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
String address = request.getParameter("address");
pst.executeQuery("insert into employee(id,name,address)"+"values("+id+",'"+name+"','"+address+"')");
}
else if(request.getParameter("actionupdate")!=null
&& "update".equals(request.getParameter("actionupdate"))) {
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
String address =request.getParameter("address");
pst.executeUpdate("update employee set address='"+address+"',name='"+name+"'where id="+id+"");
}
ResultSet rst=pst.executeQuery("select *from employee");
while (rst.next())
{
out.print("<tr>");
out.print("<td align=center bgcolor=yellow><b> " + rst.getInt("id") + "</b></td>");
out.print("<td align=center><b>" + rst.getString("name") + "</b></td>");
out.print("<td align=center><b>" + rst.getString("address") + "</b></td>");
out.print("<form align=center action=\"./requestdata\">");
out.print("<td align=center bgcolor=yellow><a href=\"http://localhost:8082/RequestDataDemo/requestdata?id="
+rst.getInt("id")+"&action=delete\">DELETE</a></td>");
out.print("<td align=center bgcolor=yellow><a href=\"http://localhost:8082/RequestDataDemo/requestdata?id="
+rst.getInt("id")+"&name="+rst.getString("name")+"&address="+rst.getString("address")+"&actionupdate=update\">UPDATE</a></td>");
out.print("</tr>");
}
out.print("</table>");
out.print("<br><br>");
if(request.getParameter("actionupdate")!=null && "update".equals(request.getParameter("actionupdate"))) {
out.print("<form align=center action=\"./requestdata\">");
out.print("enter id :<input type=\" text\" name = \" id \" value="+request.getParameter("id")+"><br><br>");
out.print("enter name: <input type=\"text\" name = \"name\" value="+request.getParameter("name")+"><br><br>");
out.print("enter address:<input type=\"text\" name = \"address \" value="+request.getParameter("address")+"><br><br>");
out.print(" <input type=\"submit\" value =\"update\"><br><br>");
out.print("</form>");
}
else
{
out.print("<form align=center action=\"./requestdata\">");
out.print("eneter id :<input type=" + "text" + " name = " + "id><br><br>");
out.print("eneter name: <input type=" + "text" + " name = " + "name><br><br>");
out.print("eneter address:<input type=" + "text" + " name = " + "address><br><br>");
out.print(" <input type=" + "submit" + " value = " + "submit><br><br>");
out.print(" <input type=" + "reset><br><br>");
/* out.print("<input type='submit' value='delete'>"); */
out.print("</form>");
}
out.print("</body>");
out.print("</html>");
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
out.close();
}
}
我的请求将要更新,但是数据库中的记录未更新 帮助我摆脱这种情况 单击更新按钮后,我没有任何错误,数据库记录未插入数据库中
答案 0 :(得分:0)
我同意您应该重构此代码的所有评论。但是,我想尝试一下是很重要的。
我认为您在这里有一个逻辑问题:插入新记录时,您发送的是什么?我找不到那部分。
我猜您希望插入块运行,所以这种情况:
else if(request.getParameter("id") != null&&request.getParameter("name")!=null&&request.getParameter("address")!=null &&request.getParameter("update")!=null &&!"update".equals(request.getParameter("actionupdate") ))
是真的。但是,如果您查看该行的末尾,则希望显示“ update”参数,并且希望“ actionupdate”与“ update”不同。但是您没有在代码中设置这些。因此,此条件将始终为false,因此永远不会调用insert。
按下提交按钮时,会将参数Submit =“”发送到服务器。这样,您可以知道单击了哪个按钮。因此,也许添加一个带有value =“ insert”的提交按钮,并测试是否存在要在INSERT块中输入的按钮。
再次,通过重新访问所有条件和参数来尝试执行此操作,并查看何时/是否已设置以及何时设置为真。然后,绝对要花一些时间进行重构和练习更好的技术。