日期:2014-05-18  浏览次数:20606 次

hibernate 更新数据
public String Edit() throws Exception{
Session s=HibernateUtil.currentSession();
s.beginTransaction();
try{

UserTable ut=(UserTable)s.get(UserTable.class, new Integer(userId));
 
ut.setUserName(userName);
  ut.setUserPass(password);
  ut.setEmail(email);
  s.update(ut);
  s.flush();
  s.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
s.getTransaction().rollback();
}
return SUCCESS;
}


对应的jsp页面
<s:form action="Edit">
  <s:textfield name="userName" label="用户名"/>
  <s:textfield name="password" label="密码" />
  <s:textfield name="email" label="Email" />
  <s:submit value="提交"/>
<s:/form>

提交以后更新不了表里面的数据 报错如下
java.lang.NullPointerException
at com.action.OperateAction.Edit(OperateAction.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:434)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:273)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:235)
高手给我指点一下该怎么办

------解决方案--------------------
探讨
楼主啊。。。 UserTable ut=(UserTable)s.get(UserTable.class, new Integer(userId));

你这句话  userId 怎么得到的? 自己看看。

------解决方案--------------------
java.lang.NullPointerException 
at com.action.OperateAction.Edit(OperateAction.java:106) 
你看看你的OperateAction.java:106行写的是什么?
一般NullPointerException可能是前台提交的数据没到达到后台界面。后台做关于这个数据的操作时就会报空异常了,你仔细检查一下。
------解决方案--------------------
你这个是 edit 那势必这个数据已经在数据库中存在了。 如果存在了 肯定有一个唯一确定的值 在这里 我估计你用的是 userid

你在页面上应该有个字段 <input type="hidden" name="userid" value=<%obj.getUserid()%> 

这个obj这里我是举例,你自己设定。 在后台,你应该是 String userId = request.getParameter("userid");

反正记住,第一步,对于修改页面,先是从后台数据库中,把已有数据放在页面上显示。 这个时候肯定要考虑userId的存放方式,如果不想给用户看

就是 hidden方式。

第二步,修改提交后,放入后台,此时通过userId得到对象,然后修改 ,接下来你应该都知道了。

总结,楼主你是不是自学JSP,如果是的话你需要找本书扎扎实实的从头到尾看看。(我个人感觉,你学习路线有问题)
------解决方案--------------------
呵呵,顶楼上