首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于jsp修改Oracle数据库中记录的有关问题

2012-01-20 
关于jsp修改Oracle数据库中记录的问题代码大致如下:public boolean update(Provider p){boolean isUpdate

关于jsp修改Oracle数据库中记录的问题
代码大致如下:
public boolean update(Provider p){
boolean isUpdate=false;
openConection();
String sql="update provider set p_id=?,providername=?,description=?,contacts=?,telephone=?,fax=?,address=?";
try {
ps=con.prepareStatement(sql);
ps.setInt(1,p.getPid());
ps.setString(2,p.getProvidername());
ps.setString(3,p.getDescription());
ps.setString(4,p.getContacts());
ps.setString(5,p.getTelephone());
ps.setString(6,p.getFax());
ps.setString(7,p.getAddress());
int count=ps.executeUpdate();
isUpdate=count>0?true:false;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
shutdown();
}
return isUpdate;
}

<%
  Provider p2=new Provider();
  String msg=request.getParameter("msg");
  if("update".equals(msg)){
  String name2=request.getParameter("proName");
  p2.setProvidername(name2);
  String desc2=request.getParameter("proDesc");
  p2.setDescription(desc2);
  String contact2=request.getParameter("contact");
  p2.setContacts(contact2);
  String phone2=request.getParameter("phone");
  p2.setTelephone(phone2);
  String fax2=request.getParameter("fax");
  p2.setFax(fax2);
  String address2=request.getParameter("address");
  p2.setAddress(address2);
  boolean isUpdate=digger.update(p2);
  if(isUpdate){
  out.println("<script type=\"text/javascript\">");
  out.print("alert(\"添加成功\")");
  out.println("</script>");
  }else if(!isUpdate){
  out.println("<script type=\"text/javascript\">");
  out.print("alert(\"添加失败\")");}
  out.println("</script>");
  }
   
  %>
<input name="button" id="button" value="修改" class="input-button" type="submit" onclick="location.href='providermodify.jsp?msg=update'">
执行后数据库中内容被清空!!!!!
求解!!! 


[解决办法]
你的代码里有这个啊
<input name="flag" value="doAdd" type="hidden">

你应该使用flag来标记是做什么操作吧?点不同的按钮,你让flag有不同的值就行了.

<input name="button" id="button" value="修改" class="input-button" type="submit" onclick="document.getElementById('flag').value='update'">
这个修改的话,你可以将URL直接写到
<form id="form1" name="form1" method="post" action="" >
那个action的地方就行了.
删除的话,一般是使用另一个页面(和修改的页面分开)吧?那样的话就使用和你的代码相似的代码就可以了

<input name="button" id="button" value="删除" class="input-button" type="button" onclick='.......jsp?id=${pageScope.pid}'> 

如果你将两个保存(添加的保存和修改的保存)都写在一个页面的话.就应该有几种参数了:
从列表页面过来的:
点击'修改'-->过来的-->操作应该先是view
点击'添加'-->过来的-->操作应该是add
点击'保存'-->过来的-->操作应该是save(有ID为修改,无ID为添加)
代码的流程应该是这样的:
String flag = request.getParameter("flag");

if("add".equals(flag))
{
//创建一个对象,直接放到pageContext里.
}else if("view".equals(flag))
{
//取出请求中的ID,查询数据库得到对象,放到pageContext里
}else if("save".equals(flag))
{
//取出请求中的参数,填到对象中,根据ID有无去判断修改还是添加.
}


页面中的


<input name="flag" value="doAdd" type="hidden">只有一个值,就是save

<input name="flag" value="save" type="hidden">


在前一个浏览页面-->点击添加的时候带上一个参数
flag=add

比如说是这样的<a href="a.jsp?flag=add">添加</a>

而修改的连接应该是这样的
<a href="a.jsp?flag=view&id=11111">修改</a>其中的11111是实际的ID值

热点排行