在使用Hibernate时出现的
空指针异常,求助
其他配置都没问题了,就是要操作数据库时的Hibernate出现了问题,一直是
空指针异常,不知道为什么
UserDaoImpl.java代码
Java code
public User regist(User user) {
// TODO Auto-generated method stub
List ul = getHibernateTemplate().find("from users u where u.username = ?" , new String[]{user.getUsername()});
if (ul == null || ul.size() < 1)
{
this.getHibernateTemplate().saveOrUpdate(user);
return user;
}
return null;
}
问题所在
java.lang.NullPointerException com.AppMarket.DAO.UserDaoImpl.regist(UserDaoImpl.java:23)
com.AppMarket.service.UserServiceImpl.regist(UserServiceImpl.java:18)
com.AppMarket.Action.UserAction.regist(UserAction.java:41)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
这样的错误是为什么呢?会是出现在数据库那方面然后导致的吗?
------解决方案--------------------如果getHibernateTemplate()为null
可能是你的spring配置文件没起到作用,很明显的是你的getHibernateTemplate()为空,说明注入失败。好好检查你的ApplicationContext.xml,看看web.xml有没有加载spring配置文件
如果user为null
检查下user是哪里拿到的,为什么拿到是null。
------解决方案--------------------UserDaoImpl.java:23已经提示是这行了,楼上正解,检查getHibernateTemplate()和user哪个为null,再对症下药
------解决方案--------------------我认为是你写的那个if有问题,如果list为null,为什么还要保存啊??这样不出现空指针才怪呐,将if的条件改为if(ul!=null&&ul.size>0){
this.getHibernateTemplate().saveOrUpdate(user);
return user;
}