public class MySqlDaoImpl extends HibernateDaoSupport implements MySqlDao{

//检查有没有这个用户

public AdminUser loginName(String name){
System.out.println("dao====  "+name);
AdminUser admin = null;
Query query = (Query)this.getSession().createQuery("from model.AdminUser where name=?");
query.setString(0,name);
List list = query.list();
if(list.size()>0){
admin = (AdminUser)list.get(0);
}
return admin;
}
老是提示 这行 报空指针  Query query = (Query)this.getSession().createQuery("from model.AdminUser where name=?");----------------------------------------我控制台 也打印出 System.out.println("dao====  "+name);
======================================真不知道为什么会报空指针  明明输入值了 也报

解决方案 »

  1.   

    query.setString(0,name);
    把0改成1,oracle是从1开始的..
    你写0,在数据库那头就是name=null的查询了
      

  2.   


    查询实体对象  下标 从 0 开始JDBC   是从 1 开始的
      

  3.   

    4L说得对
    setString(int position, String val),它的位置是从第1个开始
                    String val)
      

  4.   

    你自己本地 建个 java项目 测试下 hibernate 的 query  条件查询  你写1  100% 抛越界
      

  5.   

    首先确定session是否能正常的打开和执行,你把session分开写,看看异常出在那行,然后看异常,一般这个session配置正常都是没问题的!
    其次就是你传参的问题,这里的下标确实是从1开始的!  不行的话你试试先不代入参数,指定个名字看看它是否能执行,这些都排查过后,那里出问题应该都一目了然了!
      

  6.   


    下标 写 1  就出现这个:ava.lang.IllegalArgumentException: Positional parameter does not exist: 1 in query: from model.AdminUser where name=?
      

  7.   

    hibernate 中的 session 跟 connection 一样 连接数据库    错误是 没有连接到数据库
      

  8.   

    from model.AdminUser where name=? 感觉你model.AdminUser有问题。 查询实体的属性么?对应表的话,就是查询表的字段了。。没有这样的吧。。