哎呀哎呀!又报错!!空指针啊!
最近在学习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 继承过来的 --------------------编程问答--------------------
我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 开发