spring getHibernateTemplate 返回null

方法:publicclassafficheDaoextendsHibernateDaoSupportimplementsIaffiche{publicListls(){r... 方法:
public class afficheDao extends HibernateDaoSupport implements Iaffiche {
public List ls(){
return this.getHibernateTemplate().find("from TbAffiche");

}

}
测试类:
public static void main(String[] args) {
// TODO Auto-generated method stub
afficheDao aff=new afficheDao();
List ls=aff.ls();
if(ls.size()>0){
Iterator iter=null;
while(iter.hasNext()){
TbAffiche affs=(TbAffiche)iter.next();
System.out.println(affs.getName());
}
}

}
spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="afficheDao" class="com.dao.afficheDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
</property>
<property name="url"
value="jdbc:sqlserver://localhost:1433;databaseName=db_shopping">
</property>
<property name="username" value="sa"></property>
<property name="password" value="ok"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="ds" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>

</property>
<property name="mappingResources">
<list>
<value>com/entity/TbAffiche.hbm.xml</value>
</list>
</property>
</bean>
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>

报错:
Exception in thread "main" java.lang.NullPointerException
at com.dao.afficheDao.ls(afficheDao.java:12)
at com.dao.test.main(test.java:16)
我想查询所有,可是每次都是报空指针错误,怎么办?????
展开
 我来答
huangpeng0419
2009-11-11 · TA获得超过357个赞
知道小有建树答主
回答量:569
采纳率:100%
帮助的人:301万
展开全部
public static void main(String[] args) {
// TODO Auto-generated method stub
//加载配置文件
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
afficheDao aff= (afficheDao )context.getBean("afficheDao ");
List ls=aff.ls();
if(ls.size()>0){
Iterator iter=null;
while(iter.hasNext()){
TbAffiche affs=(TbAffiche)iter.next();
System.out.println(affs.getName());
}
}

}
原因: HibernateDaoSupport 需要注入SessionFactory对象,自己创建得数据访问对象并没有注入SessionFactory对象,因此你应该从spring容器中去获取对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dc81944bb
2009-11-11 · TA获得超过572个赞
知道小有建树答主
回答量:793
采纳率:0%
帮助的人:726万
展开全部
没有配事务。所以sesssion为空
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式