应该与我在添加hibernate能力时取消了创建sessionFactory无关把,
还是和配置文件有关,为什么运行总提示空指针那
还是和配置文件有关,为什么运行总提示空指针那
解决方案 »
- eclipse 不能启动tomcat????
- axis webservice的认证问题?
- JAVA实现用户打卡签到连续登录天数
- java可以做一个QQ自动登陆器么
- 关于使用spring+hessian+swingd的可行性
- struts2.0 中 sitemesh 异常问题
- [HIBERNATE醒目]请问如何解决commit failed的错误?
- 请帮我解释一下输出的结果,谢谢!
- 推荐好书一本,学J2EE和EJB不可不看-----我正在看...
- 关于AJAX提交参数的问题
- java.net.SocketTimeoutException: Async operation timed out
- JDBC 批量插入的问题
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<bean id="baseDao" class="com.gdekt.dao.daoimpl.BaseDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
请问哪里有什么问题吗?还需要配置什么?
<bean id="hibernateTemplate" class="hibernateTemplateAPI全路径">
<property name="sessionFactory" ref="sessionFactory"> </property>
</bean> <bean id="baseDao" class="com.gdekt.dao.daoimpl.BaseDaoImpl">
<property name="sessionFactory" ref="sessionFactory"> </property>
<property name="hibernateTemplate" ref="hibernateTemplate"> </property>
</bean>
BaseDaoImpl中:
private HibernateTemplate hibernateTemplate;get,set
class="org.springframework.orm.hibernate3.support.HibernateDaoSupport"
abstract="true">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>DAO继承extends HibernateDaoSupport
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class BaseDaoImpl extends HibernateDaoSupport implements IBaseDao{ public Session session;
public Session getSessionTemplate() {
if(this.getHibernateTemplate()==null){
System.out.println("没有this.getHibernateTemplate()");
}
SessionFactory sf=this.getHibernateTemplate().getSessionFactory();
if(sf==null){
System.out.println("没有sf");
}
session=sf.getCurrentSession();
if(session==null){
System.out.println("没有session");
}
return session;
}
}applicationcontent.xml中的代码 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
</bean> 为myeclipse里自动生成的 <!-- 声明Hibernate事物,加入session工厂 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory"><ref bean="sessionFactory" /></property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"> </property>
</bean> <!-- dao below -->
<bean id="baseDao" class="com.gdekt.dao.daoimpl.BaseDaoImpl" >
<property name="sessionFactory" ref="sessionFactory"></property>
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean>hibernate.cfg.xml中的代码与applicationcontent.xml在同一目录下。<hibernate-configuration><session-factory>
<property name="connection.username">sa</property>
<property name="connection.url">jdbc:microsoft:sqlserver://192.168.1.12:1433;DatabaseName=ekts_db</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="connection.password">07512362598</property>
<property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
<property name="myeclipse.connection.profile"></property>
<mapping resource="com/gdekt/mappings/EktMails.hbm.xml" /></session-factory></hibernate-configuration>在BaseDaoImpl main方法中
System.out.println(new BaseDaoImpl().getHibernateTemplate());
System.out.println(new BaseDaoImpl().getSessionFactory().openSession());
都是空值,按上面各位的方法都试了一下,暂时还是没有效果,现在把代码都贴出来,请各位鉴定一下。谢过了先,都琢磨好几天了,未出结果,是不是我myeclipse添加Spring和hibernate能力时有哪些选项遗漏了吗?
即:加一个属性和一个方法private HibernateTemplate hibernateTemplate;public void setSessionFactory(SessionFactory sessionFactory){
this.hibernateTemplate = new HibernateTemplate(sessionFactory):
}这样,就可以直接调用HibernateTemplate方法中的 save()等方法了,非常方便,而且没有侵入性。
<property name="sessionFactory" ref="sessionFactory"> </property>
<property name="hibernateTemplate" ref="hibernateTemplate"> </property>
</bean>
hibernateTemplate 这个BEAN里面已经存在sessionFactory了,为什么这个地方还写。把这个地方sessionFactory去掉。另外在BaseDaoImpl需要有hibernateTemplate 的SET注入方法,BaseDaoImpl 中也不需要继承HibernateDaoSupport这个类,直接可以掉用hibernateTemplate
,不明白的可以联系我,QQ35458526
private HibernateTemplate hibernateTemplate;public void setSessionFactory(SessionFactory sessionFactory){
this.hibernateTemplate = new HibernateTemplate(sessionFactory):
}
但是报错,配置文件的信息我感觉没有错误啊,为什么hibernateTemplate总是空?
改成这样
private HibernateTemplate hibernateTemplate;
get,set方法
<bean id="baseDao" class="com.gdekt.dao.daoimpl.BaseDaoImpl" >
<property name="sessionFactory" ref="sessionFactory"> </property>
<property name="hibernateTemplate" ref="hibernateTemplate"> </property>
</bean>
看看可以不?
<property name="hibernateTemplate" ref="hibernateTemplate"> </property>
</bean>
BaseDaoImpl 中也不需要继承HibernateDaoSupport这个类,直接可以掉用hibernateTemplate BaseDaoImpl 类中添加以下:
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
然后直接可以调用 hibernateTemplate.save()什么的,不明白加我QQ35458526.加QQ请注明
发出你的错误信息。
我遇到也是这样的问题,我用的程序需要 Serializable
而 spring-hibernate.jar 没有
所以就不能加载