首先:1,你的hql语句有问题,其实hql语句的写法与sql语句的写法一样的
       String hql = "FROM Student as p WHERE p.stuId p.stuName p.stuAge p.stuSex p.stuClass like ?" 
     看看你的where条件语句,不是这么写的,应该这么写:
       String hql = "select p.stuId,p.stuName,p.stuAge,p.stuSex from Student p where stuClass like ?"
     2,关于在query中绑定参数的问题:
       query.setParameter(index,value)
     或者采用你的那种写法,应该是:
       query.setString("stud",stud);

解决方案 »

  1.   

    十分感谢楼上的,那我的servlet中是如何调用这个方法呢?直接实例化这个类
    然后调用么?那我传进取的stu参数怎么找不到
      

  2.   

    首先,如果在servlet中调用的话,先检查stu参数是否传进去了,它和你要查询的那个字段对应上就可以了,一般的方法,就是在servlet中实例化这个类,然后调用你这个类中的queryByLike方法
    比如说:
        .......
        String stud = request.getParameter("stud");
        xxDao x = new xxDao();
        List list = x.queryByList(stud);
        ......
      

  3.   

    错误:java.lang.NumberFormatException: For input string: ""
    Servlet
    //获取页面属性值
           String id = request.getParameter("stuId");
          //stuid = Integer.parseInt(stuId);
           Integer stuId= new Integer(id);
            String stuId_temp = request.getParameter("stuId");
            if(stuId_temp!=null && stuId_temp.trim()!=""){
                stuId = new Integer(stuId_temp).intValue();
            }
            stuId = Integer.parseInt(stuId_temp);
            String stuName = request.getParameter("stuName");
            String stuAge = request.getParameter("stuAge");
            String stuSex = request.getParameter("stuSex");
            String stuClass = request.getParameter("stuClass");
           
            //构造学生对象
            Student stu = new Student();
            stu.setStuAge(stuAge);
            stu.setStuClass(stuClass);
            stu.setStuId(stuId);
            stu.setStuName(stuName);
            stu.setStuSex(stuSex);
            //调用查询方法
            String stud = request.getParameter("stud");
            StudentDao studao = new StudentDao();
            List stuList = studao.queryByLike(stud);
          
            request.setAttribute("list",stuList);
            //跳转到搜索页
            request.getRequestDispatcher("./search.jsp").forward(request,response);
      

  4.   

    出现这个问题的原因:String转化成int数据类型的时候,出现异常,因为没有对String数据类型进行判断,时候为null,或者"",或者根本不能转化成数字,一般的做法是先判断,在转化;而且,在你的代码中,实例化了stu对象,并且给他赋值了,但是你用到它了么?至少我在你的查询语句中,好像没有看到stu用到的地方?这么做有意义么?如果没用的话,可以删掉