我已经创建了一个表单,使用JSP将数据填充到MySQL表中。在更新部分中,当我输入具有预期主键值的数据并点击提交按钮时,它只是在做空白页面。
我是java编程的新手请帮助。
<%
//jsp prog for database connection
Connection conn = null;
PreparedStatement pstatement = null;
try {
String candidate = request.getParameter("candidate");
// So on....
Connection conn=ConnectionProvider.getConn();
int updateQuery = 0;
if(candidate!=null && phone!=null && recname!=null && ofrdate!=null && ofrstat!=null && ofrdctc!=null && DOJ!=null && month!=null && jngstat!=null)
{
if(candidate!="" && phone!="" && recname!="" && ofrdate!="" && ofrstat!="" && ofrdctc!="" && DOJ!="" && month!="" && jngstat!="")
{
String queryString =("UPDATE mytable SET recname=?,ofrdate=?,ofrstat=?,ofrdctc=?,DOJ=?,month=?,jngstat=? WHERE phone=?");
pstatement = conn.prepareStatement(queryString);
pstatement.setString(1, phone);
pstatement.setString(2, recname);
pstatement.setString(3, ofrdate);
pstatement.setString(4, ofrstat);
pstatement.setString(5, ofrdctc);
pstatement.setString(6, DOJ);
pstatement.setString(7, month);
pstatement.setString(8, jngstat);
updateQuery = pstatement.executeUpdate();
} // end
} // end of try
// catch exception block
// finally block
%>
答案 0 :(得分:0)
我认为错误就在这里:
String queryString =("UPDATE mytable SET recname=?,ofrdate=?,ofrstat=?,ofrdctc=?,DOJ=?,month=?,jngstat=? WHERE phone=?");
pstatement = conn.prepareStatement(queryString);
pstatement.setString(1, phone);
pstatement.setString(2, recname);
pstatement.setString(3, ofrdate);
pstatement.setString(4, ofrstat);
pstatement.setString(5, ofrdctc);
pstatement.setString(6, DOJ);
pstatement.setString(7, month);
pstatement.setString(8, jngstat);
您的外卡与pstatement.setString(int, String);
之间没有对应关系,您应该按照它们在查询字符串中显示的顺序进行设置。
例如,第一张外卡指的是recname
字段,但您将其设置为:pstatement.setString(1, phone);
可能是更新失败的原因。
尝试从字符串recname
开始依次设置通配符,并将第8个设置为字符串phone
:
pstatement.setString(1, recname);
pstatement.setString(2, ofrdate);
pstatement.setString(3, ofrstat);
pstatement.setString(4, ofrdctc);
pstatement.setString(5, DOJ);
pstatement.setString(6, month);
pstatement.setString(7, jngstat);
pstatement.setString(8, phone);