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

在整合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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值