首先要确定哪个是空指针.
1,String account会不会是;
2, List list 会不会是,数据库里没数据,查询不到.

解决方案 »

  1.   

    List list = getHibernateTemplate().find(hql, account);
    这行的空指针我debug也直接抛出空指针
      

  2.   

    我在这里测试的
    public class UserDaoHibernateImpl extends HibernateDaoSupport implements
    UserDao { public UserInfo login(String account) {
    String hql = "from UserInfo where account=?";
    List list = new ArrayList();
    list = getHibernateTemplate().find(hql, account);
    UserInfo user = (UserInfo) list.get(0); return user;
    }
    public static void main(String[] args) {
    UserDaoHibernateImpl dao = new UserDaoHibernateImpl();
    UserInfo user =dao.login("user");
    System.out.println(user.getUname());
    }}异常直接就是
    Exception in thread "main" java.lang.NullPointerException
    at com.ryhuua.pet.model.dao.hibernateImpl.UserDaoHibernateImpl.login(UserDaoHibernateImpl.java:17)
    at com.ryhuua.pet.model.dao.hibernateImpl.UserDaoHibernateImpl.main(UserDaoHibernateImpl.java:24)
      

  3.   

    数据库里有数据没有?
    另外debug,把重点字段加到watches里,看看到底哪个是null!
      

  4.   

    在UserInfo中的account 出现account cannot be resolved
      

  5.   

    <bean id="userDao" 
    class="com.ryhuua.epet.model.dao.hibernateImpl.UserDAOHibernateImpl"> 
    <property name="hibernateTemplate"> 
    <ref bean="hibernateTemplate" /> 
    </property> 
    </bean> 
    spring来管理bean的话,源代码里面需要set方法注入进去吧
      

  6.   

    UserDaoHibernateImpl dao = new UserDaoHibernateImpl(); 这里不对!
    你先改成下面的试试
    static ApplicationContext ctx= new FileSystemXmlApplicationContext(
    "/ApplicationContext.xml");//配置文件路径根据你的项目自己改/
    UserDaoHibernateImpl dao = (UserDaoHibernateImpl) ctx.getBean("UserDaoHibernateImpl");
    另外,getHibernateTemplate().find(hql, account); 先判断是否等于null再付值
      

  7.   

    ApplicationContext.xml是在是用相对路径还是绝对的路径呢?
    绝对路径是。/pet/WebRoot/WEB-INF/applicationContext.xml
      

  8.   

    list = getHibernateTemplate().find(hql, account); 
    空指针的话就 二个地方,getHibernateTemplate(),account,你DEBUG到这的时候看一下哪个没有值就好找了.
      

  9.   

    public class UserDAOHibernateImpl extends HibernateDaoSupport implements
    UserDAO {public UserInfo Login(String account){
    String hql = "from UserInfo where account=?";
            List list = getHibernateTemplate().find(hql, account);
                    UserInfo user = new UserInfo();
                    user=list.get(0);
    return user;
    }

    改成:public class UserDAOHibernateImpl extends HibernateDaoSupport implements
    UserDAO {public UserInfo Login(String account){
    String hql = "from UserInfo where account=?";
           Query queryObject = getSession().createQuery(hql);
    queryObject.setParameter(0, account);
    List userList = queryObject.list();
                    UserInfo user = new UserInfo();
                    user=list.get(0);
    return user;
    }

      

  10.   

    这样改了也不行。。我想可能是没有得到session看了下书上说的。要先对hibernateTemplate进行获得session的。