userDao出现java.lang.NullPointerException,求人看下为何会出现空
userDaoImpl代码:@Component("userDao")publicclassUserDaoImplimplementsUserDao{privateHib...
userDaoImpl代码:
@Component("userDao")
public class UserDaoImpl implements UserDao {
private HibernateTemplate hibernateTemplate;
public boolean check(String username) {
List <User> users=hibernateTemplate.find("from User u where u.username = '" + username + "'");
if(users!=null&&users.size()>0){
return true;
}
return false;
}
public void save(User user) {
hibernateTemplate.save(user);
}
public List<User> getList(){
System.out.println("getList");
return (List<User>)this.hibernateTemplate.find("From User");
}
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
}
userServiceImple代码:
@Component
public class UserServiceImpl implements UserService {
private UserDao userDao;
private List<User> users;
public boolean add(User user) {
if(userDao.check(user.getUsername())){
return true;
}
userDao.save(user);
return false;
}
public List<User> list(){
System.out.println(userDao==null);
System.out.println("serviceList");
users=userDao.getList();
return users;
}
public UserDao getUserDao() {
return userDao;
}
@Resource
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
spring配置文件:
sessionFactory注入了dataSource数据库连接方法
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>com.wang.model.User</value>
</list> </property>
<!-- spring集合注入的方式 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<!-- DAO层接口实现-->
<bean id="userDao" class="com.wang.dao.impl.UserDaoImpl">
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>
java.lang.NullPointerException
at com.wang.service.impl.UserServiceImpl.add(UserServiceImpl.java:19)
at com.wang.action.UserActionTest.testAdd(UserActionTest.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
我这是uerDao出现空也就是service层里面的userDao没有值也就是说uerDaoImpl没有注入到userDao里面,而且我testlist()方法不需要传name也是同样的错误 展开
@Component("userDao")
public class UserDaoImpl implements UserDao {
private HibernateTemplate hibernateTemplate;
public boolean check(String username) {
List <User> users=hibernateTemplate.find("from User u where u.username = '" + username + "'");
if(users!=null&&users.size()>0){
return true;
}
return false;
}
public void save(User user) {
hibernateTemplate.save(user);
}
public List<User> getList(){
System.out.println("getList");
return (List<User>)this.hibernateTemplate.find("From User");
}
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
}
userServiceImple代码:
@Component
public class UserServiceImpl implements UserService {
private UserDao userDao;
private List<User> users;
public boolean add(User user) {
if(userDao.check(user.getUsername())){
return true;
}
userDao.save(user);
return false;
}
public List<User> list(){
System.out.println(userDao==null);
System.out.println("serviceList");
users=userDao.getList();
return users;
}
public UserDao getUserDao() {
return userDao;
}
@Resource
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
spring配置文件:
sessionFactory注入了dataSource数据库连接方法
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>com.wang.model.User</value>
</list> </property>
<!-- spring集合注入的方式 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<!-- DAO层接口实现-->
<bean id="userDao" class="com.wang.dao.impl.UserDaoImpl">
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>
java.lang.NullPointerException
at com.wang.service.impl.UserServiceImpl.add(UserServiceImpl.java:19)
at com.wang.action.UserActionTest.testAdd(UserActionTest.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
我这是uerDao出现空也就是service层里面的userDao没有值也就是说uerDaoImpl没有注入到userDao里面,而且我testlist()方法不需要传name也是同样的错误 展开
6个回答
展开全部
UserServiceImpl 的bean没有声明
配置加个bean吧
配置加个bean吧
更多追问追答
追问
我用了annotation
@component
@resource
而且现在我是因为userDao出现了空,userService没有报空
自动装配方式,这样不是可以的吗
追答
用了annotation还是要声明userserviceimpl呀,你要加的是
像你配userDao一样的嘛
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有初始化吧,使用userDao之前先判断userDao是否为null,不为null的时候才调用userDao的方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那不是 都告诉你了 吗
UserServiceImpl.add(UserServiceImpl.java:19)
这个方法的 第 19 行 下面的都是 自己在先看看
UserServiceImpl.add(UserServiceImpl.java:19)
这个方法的 第 19 行 下面的都是 自己在先看看
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-08-09
展开全部
没有注入?!是否开启注解驱动?包扫描所用的注解。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询