当前位置:编程学习 > JAVA >>

哎呀哎呀!又报错!!空指针啊!

最近在学习ssh,就自己搭建环境,写了个小小程序
以下是我的hibernate配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  
  <hibernate-configuration>
     <session-factory>
       
       <!-- 数据库连接设置 -->
        <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
        <property name="connection.url">jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test</property>
        <property name="connection.username">sa</property>
        <property name="connection.password">nyyt</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
       
        <!-- Enable Hibernate's automatic session context management 
        <property name="current_session_context_class">thread</property>

        Disable the second-level cache  
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>


         Drop and re-create the database schema on startup
        <property name="hbm2ddl.auto">update</property>
         -->
        <mapping resource="com/cao/bean/UserBean.hbm.xml"/>
       
       
       
     </session-factory>
  
  </hibernate-configuration>




以下是我程序报空指针异常的地方:



package com.cao.dao.impl;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.cao.bean.UserBean;
import com.cao.dao.*;
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO{

public boolean isUser(UserBean user) {
// TODO Auto-generated method stub
return false;
}

public void saveUser(UserBean user) {
System.out.println("hibernate save。。。。。。 "+user.getPassword()+"...."+user.getUsername()+"////"+this.getHibernateTemplate());-----这两行的打印内容是:hibernate save。。。。。。 aaaaa....admin////null---------------

  this.getHibernateTemplate().save(user);--------------------此处报空指针异常--------
}

}

是this.getHibernateTemplate()报的异常。。是不是我的hibernate配置出错啊 !求解答啊 求解答啊!!! --------------------编程问答-------------------- getHibernateTemplate() 方法依赖于SessionFactory

你必须先调用该UserDAOImpl类的 setSessionFactory(SessionFactory sf)方法,将你的sessionFactory设置进去。

setSessionFactory()方法是从HibernateDaoSupport 继承过来的 --------------------编程问答--------------------
引用 1 楼  的回复:
getHibernateTemplate() 方法依赖于SessionFactory

你必须先调用该UserDAOImpl类的 setSessionFactory(SessionFactory sf)方法,将你的sessionFactory设置进去。

setSessionFactory()方法是从HibernateDaoSupport 继承过来的


我UserDAOImpl类里没有setSessionFactory(SessionFactory sf)方法啊 要怎样做才能把sessionFactory设置进去啊!求教啊!! --------------------编程问答-------------------- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
       <property name="driverClassName">
           <value>com.mysql.jdbc.Driver</value>
       </property>
       <property name="url">
           <value>jdbc:mysql://localhost/test</value>
       </property>
       <property name="username">
           <value>root</value>
       </property>
       <property name="password">
           <value>8093</value>
       </property>
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
   <ref local="dataSource"/>
</property>
<property name="mappingResources">
   <list>
    <value>user.hbm.xml</value>
   </list>
</property>
<property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
   </props>
</property>
</bean> 

    <bean id="userDAO" class="com.dang.action.UserDAOImpl">
<property name="sessionFactory">
   <ref local="sessionFactory"/>
</property>
</bean> 

<bean name="/regedit" class="com.dang.action.RegeditAction">
     <property name="userDAO">
        <ref bean="userDAO"/>
     </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
       <property name="sessionFactory">
           <ref local="sessionFactory" />
       </property>
    </bean>

   <bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
     <property name="transactionManager">
         <ref bean="transactionManager" />
     </property>
     <property name="target">
         <ref local="userDAO" />
     </property>
     <property name="transactionAttributes">
         <props>
            <prop key="create*">PROPAGATION_REQUIRED</prop>
         </props>
     </property>
   </bean>
</beans> --------------------编程问答-------------------- 你的UserDAOImpl继承了HibernateDaoSupport类

setSessionFactory(SessionFactory sf)方法是HibernateDaoSupport类的。

你需要调用super.setSessionFactory() --------------------编程问答--------------------
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,