列名无效...何错之有
1.按下这超链接
- Java code
<a href="javascript:doSubmit('${pageContext.request.contextPath}/beneficiary.do?menu=modifyPage&id=<%=id%>')"><img src="file:///D|/My Documents/未命名站点 1/print.jpg"></a>2.跳转到
- Java code
public ActionForward modifyPage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IllegalAccessException, InvocationTargetException { String code=(String)request.getParameter("code"); System.out.println(code); BeneficiaryForm f = (BeneficiaryForm) form; f.setId(code); List beneficiaryList = (List) beneficiaryDao.queryByOne(f.getId()); request.setAttribute("beneficiaryList", beneficiaryList); return mapping.findForward(this.MODIFY_PAGE);//前往修改表单页 } 3.其中进入了这个到
- Java code
List beneficiaryList = (List) beneficiaryDao.queryByOne(f.getId());
- Java code
public List<?> queryByOne(String code) { List<?> list = this.getHibernateTemplate().find("from Beneficiary where code="+code); return list; }在页面显示这列所有数据
- Java code
在显示数据页面按下<a href="javascript:doSubmit('${pageContext.request.contextPath}/accreditor.do?menu=modifyDo&id=<%=id%>')"><img src="file:///D|/My Documents/未命名站点 1/print.jpg"></a>这个超链接后跳转到
- Java code
public ActionForward modifyDo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IllegalAccessException, InvocationTargetException { String code=(String)request.getParameter("code"); System.out.println(code); BeneficiaryForm f = (BeneficiaryForm) form; f.setId(code); Beneficiary beneficiary = new Beneficiary(); MyBeanUtils.copyBean2Bean(beneficiary, f); beneficiaryDao.updateById(f.getId(), beneficiary); return indexPage_show(mapping, form, request, response);//修改后,前往列表页,显示刚修改过的数据行 }- Java code
public void updateById(String id, Beneficiary roomExample) throws IllegalAccessException, InvocationTargetException{ Beneficiary oldRoom = queryById(id); MyBeanUtils.copyBean2Bean(oldRoom, roomExample); this.getHibernateTemplate().saveOrUpdate(oldRoom); }[解决办法]
Beneficiary 确认 你这个bean 的类型 名称 与数据库的能对应上?
[解决办法]
从你的错误信息看.就是那个dao有问题.检查一下!
[解决办法]
code 是不是数据库中是不是 varchar?
把下面语句
List<?> list = this.getHibernateTemplate().find("from Beneficiary where code="+code);
改成
List<?> list = this.getHibernateTemplate().find("from Beneficiary where code=‘"+code+“’”);
试试看!
------解决方案--------------------
还是不要直接拼成语句吧
用 ? 或者 :x的形式吧
hibernate 推荐 命名式的 :x
[解决办法]
你 "from Beneficiary where code = " 这个 code 在数据库中对应的列是 code?
在Beneficiary 这个实体bean中是对应 code 这个字段?
那么 BeneficiaryForm f = (BeneficiaryForm) form;
f.setId(code);
这个Id 是做什么的?
[解决办法]
[解决办法]
1、Beneficiary bean 中存在code属性吗
2、如果存在code属性,那么该属性和你数据库里的列对应了吗,如
<property name="code" type="java.lang.String">
<column name="列名" >
</column>
</property>