applicationContext.xml  文件--------------------------------------------------<beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>org.gjt.mm.mysql.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/tie</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>wyvern</value>
</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>test/User.hbm.xml</value></list>
</property></bean>
<bean id="UserDAO" class="test.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean></beans>数据库文件-------------------------------------------------------------------------------
CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `username` varchar(10) default NULL,
  `password` varchar(10) default NULL,
  `email` varchar(10) default NULL,
  PRIMARY KEY  (`id`)
)用到的DAO--------------------------------------
 public void save(User transientInstance) {
        log.debug("saving User instance");
        try {
            getHibernateTemplate().save(transientInstance);
            log.debug("save successful");
        } catch (RuntimeException re) {
            log.error("save failed", re);
            throw re;
        }
    }主函数--------------------------
public class test { /**
 * @param args
 */
public static void main(String[] args) {
// TODO 自动生成方法存根
User u=new User();
UserDAO d=new UserDAO();
u.setId(1);
d.save(u);
}}
报异常----------------------
Exception in thread "main" java.lang.NullPointerException
at test.UserDAO.save(UserDAO.java:31)
at test.test.main(test.java:13)
我单独要Hibernat 的basic DAO好使,可是用Sprig DAO时候就出现上边的异常,请大侠指教!!!!!!!

解决方案 »

  1.   

    补充一下,我没有用Struts,只是用了Spring+hibernat!
      

  2.   

    我看了你的代码,觉得错误可能是因为,你的DAO是自己创建的,而不是SPRING注入,
    所以,DAO就得不到SPRING注入的sessionFactory,保存时自然报空指针
      

  3.   

    DAO不能用new 来创建,可以用SPRING来注入,结合STRUTS等框架都是用的注入
    不过如果你是想测试一下,在这个Test类里是需要获得SPRING的配置文件,
    加载到内存中,就可以了
    ApplicationContext applicationContext = new FileSystemXmlApplicationContext("applicationContext.xml");//SPRING配置文件路径,有包的话这样写("org/aaa/applicationContext.xml");
    UserDAO userDAO = (UserDAO) applicationContext.getBean("UserDAO");