当前位置: 代码迷 >> Java Web开发 >> struts+hibernate 问题。。
  详细解决方案

struts+hibernate 问题。。

热度:317   发布时间:2007-12-25 10:54:16.0
struts+hibernate 问题。。
错误:
     javax.servlet.ServletException: could not execute query

action文件:
     
    public ActionForward execute (ActionMapping mapping,  
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response) {
        IndexForm indexform = new IndexForm();
        Session session = HibernateSessionFactory.getSession();
        String hql="from welcome i where i.name="+request.getParameter("name")+" and i.password="+request.getParameter("password");
        Query query = session.createQuery(hql);
        System.out.println(hql);
        List list = null;
        list = query.list();
        System.out.println(list.size());
        if(list.isEmpty())
            return mapping.findForward("no");
        else
            return mapping.findForward("ok");
    }

奇怪的是我在页面上输入一条数据库里没有的数据他会正确forword到no,如果数据库里有数据他就报could not execute query 错误。请教了。。。。。
搜索更多相关主题的帖子: hibernate  struts  

----------------解决方案--------------------------------------------------------
from welcome

Welcome
是不是大小写搞错了
这个要个po中定义的一致。
----------------解决方案--------------------------------------------------------
问题已解决。。自己太粗心。!hql格式错误:
hql="from welcome i where i.name='"+request.getParameter("name")+" 'and i.password='"+request.getParameter("password")"'"; 加上单引号就OK了。。。
----------------解决方案--------------------------------------------------------
有时候报sql错误,直接把show-sql 设置成true,然后把那条出错的sql放到工具里跑下,比如plsql,这样对于找sql语法错误很快的。
----------------解决方案--------------------------------------------------------
welcome这个是实体类的名称  要大写的!
----------------解决方案--------------------------------------------------------
  相关解决方案