您的位置:首页 > 其它

DAO中调用getHibernateTemplate()方法时就是报空指向异常

2014-06-28 00:23 393 查看
在整合ssh框架时,碰到这个问题,困扰了好几天

在网上看了很多资料,很多问题,出现的方式不同

但究其原因是没有从ApplicationContext中获取对象

当你自己用 StuDAO sd = new StuDAO()

( 其实我并没有用这样的方式获取对象,而是在配置文件中配置了sessionFactory属性

但是在DAO中调用getHibernateTemplate()方法时就是报空指向异常,反复查看自己的配置文件,并没有错误

而且在其他DAO类中均可以正常获取,这也是困扰我几天的原因 )

方式 声明一个实例时,你Spring配置文件中的的属性并没有声明在你得到的sd对象中

继承HibernateDaoSupport中的属性也没有随之声明,当然获取的为空值,

正确的方法是,从Spring配置文件中获取

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

sd = (StuDAO)ac.getBean("stu");

在LoginAction中添加上面代码后就能正常获得getHibernateTemplate(),

记录一下,第一个让自己抓狂的bug

<bean id="stu" class="net.dqsy.dao.impl.StuDAOImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="tea" class="net.dqsy.dao.impl.TeaDAOImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="adm" class="net.dqsy.dao.impl.AdmDAOImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="pap" class="net.dqsy.dao.impl.PapDAOImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="sp" class="net.dqsy.dao.impl.StuPapDAOImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="pfa" class="net.dqsy.action.PapreferAction">
<property name="sp">
<ref bean="sp"/>
</property>
</bean>
<bean id="pda" class="net.dqsy.action.PapDelAction">
<property name="sp">
<ref bean="sp"/>
</property>
</bean>

<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/acesys">
</property>
<property name="username" value="root"></property>
<property name="password" value="1234"></property>
</bean>

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>net/dqsy/po/Teacher.hbm.xml</value>
<value>net/dqsy/po/Stupaper.hbm.xml</value>
<value>net/dqsy/po/Student.hbm.xml</value>
<value>net/dqsy/po/Paper.hbm.xml</value>
<value>net/dqsy/po/Admin.hbm.xml</value></list>
</property></bean>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: