List list = getHibernateTemplate().find(hql, account); 这行的空指针我debug也直接抛出空指针
我在这里测试的 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)
这行的空指针我debug也直接抛出空指针
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)
另外debug,把重点字段加到watches里,看看到底哪个是null!
class="com.ryhuua.epet.model.dao.hibernateImpl.UserDAOHibernateImpl">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate" />
</property>
</bean>
spring来管理bean的话,源代码里面需要set方法注入进去吧
你先改成下面的试试
static ApplicationContext ctx= new FileSystemXmlApplicationContext(
"/ApplicationContext.xml");//配置文件路径根据你的项目自己改/
UserDaoHibernateImpl dao = (UserDaoHibernateImpl) ctx.getBean("UserDaoHibernateImpl");
另外,getHibernateTemplate().find(hql, account); 先判断是否等于null再付值
绝对路径是。/pet/WebRoot/WEB-INF/applicationContext.xml
空指针的话就 二个地方,getHibernateTemplate(),account,你DEBUG到这的时候看一下哪个没有值就好找了.
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;
}
}