Spring + Hibernate 整合,前辈们救救小弟 我不会吝啬分的

问题描述

这两天在学习这两个框架的整合,问题如下:Hibernate配置文件如下:<hibernate-configuration><session-factory><propertyname="connection.url">jdbc:sqlserver://localhost:1433;databaseName=ManagerDB</property><propertyname="connection.username">sa</property><propertyname="connection.password">000000</property><propertyname="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property><propertyname="dialect">org.hibernate.dialect.SQLServerDialect</property><propertyname="current_session_context_class">thread</property><propertyname="show_sql">true</property><mappingresource="com/web/entity/TabStrule.hbm.xml"/><mappingresource="com/web/entity/TabStudent.hbm.xml"/><mappingresource="com/web/entity/TabSysData.hbm.xml"/><mappingresource="com/web/entity/TabTeaScore.hbm.xml"/></session-factory></hibernate-configuration>

Spring配置文件如下:<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"><propertyname="driverClassName"value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property><propertyname="url"value="jdbc:sqlserver://localhost:1433;databaseName=ManagerDB"></property><propertyname="username"value="sa"></property><propertyname="password"value="000000"></property></bean><beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><propertyname="configLocation"value="classpath:hibernate.cfg.xml"></property></bean><beanid="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><propertyname="sessionFactory"ref="sessionFactory"></property></bean><beanid="studao"class="com.web.dao.TabStudentDAO"><propertyname="hibernateTemplate"ref="hibernateTemplate"></property><propertyname="name"value="ddddddddddddddddd"></property></bean></beans>

这里你要相信我,我确保数据库连接时正确的,如果撤出spring,Hibernate使用是正常的。在这里希望不要回答什么数据库连接错误了,Hibernate配置是否正常,我确信Hibernate配置一切正常。插入数据代码:publicclassTabStudentDAOextendsHibernateDaoSupport{publicTabStudentDAO(){//TODOAuto-generatedconstructorstub}publicvoidsave(TabStudentstu){getHibernateTemplate().save(stu);}}

Servlet中调用:TabStudentstu=newTabStudent();stu.setClassId(1);stu.setCreateTime(newDate());stu.setRemark("");stu.setStuAdd("ddddddd");stu.setStuAge(23);stu.setStuName("hechen");stu.setStuSex("男");stu.setStuTel("15800466429");stu.setExt1("");stu.setExt2("");stu.setExt3("");stuDAO=newTabStudentDAO();stuDAO.save(stu);

问题出现在dao中getHibernateTemplate()方法获得对象总是为null。确保spring容器被加载了。测试如下:WebApplicationContextcontext=WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());SessionFactorysf=(SessionFactory)context.getBean("sessionFactory");if(sf!=null){System.out.println(">>>>>>>>>>>>>>>>>>>>>>");}dao中getHibernateTemplate()方法获得对象总是为null。希望得到正确答案,再次声明不要说什么ssh,这里是spring和Hibernate的整合,与struts无关

解决方案

解决方案二:
换成:<beanid="studao"class="com.web.dao.TabStudentDAO"><propertyname="sessionFactory"><refbean="sessionFactory"/></property><propertyname="name"value="ddddddddddddddddd"></property></bean>

解决方案三:
你的hibernate都配了数据库的连接,你在spring里面又配干嘛?不是多此一举吗?<beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><propertyname="configLocation"value="classpath:hibernate.cfg.xml"></property></bean>直接指向hibernate的配置就行<beanid="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><propertyname="sessionFactory"ref="sessionFactory"></property></bean>这一句貌似也没有必要配吧?<beanid="studao"class="com.web.dao.TabStudentDAO"><propertyname="sessionFactory"ref="sessionFactory"></property></bean>这句改成sessionFactory就行了试下。看能否解决你滴问题
解决方案四:
你把Hibernate的配置文件配完整!(drivermanager)Spring的配置文件中只需要用<beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><propertyname="configLocation"><value>classpath:hibernate.cfg.xml</value></property></bean>就可以了,
解决方案五:
set注入的实例属性在哪里?这样配hibernateTemplate你是指望hibernateDaoSupport知道模板的改变,可惜这样是不行的,要不dao中加实例属性hibernateDao,并在spring中配,要不改变实现方法,springdao的配置有点太灵活了
解决方案六:
set注入,首先要有这个实例属性
解决方案七:
你那个DAO里配一个hibernateTemplate的一个set方法就可以了,这才是set注入.
解决方案八:
当然还hibernateTemaplate还是那个DAO的一个属性
解决方案九:
<beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><propertyname="dataSource"><refbean="dataSource"/></property><propertyname="mappingResources"><list><value>实体类映射文件</value></list></property>

<beanid="studao"class="com.web.dao.TabStudentDAO"><propertyname="sessionFactory"><refbean="sessionFactory"/></property></bean>

解决方案十:
帮你顶给分不?
解决方案十一:
顶顶顶
解决方案十二:
在DAO里面加上@Resource(name="hibernateTemplate",type=HibernateTemplate.class)privateHibernateTemplatehibernateTemplate;然后再加上getset方法试试
解决方案十三:
先帮顶了!没空这会要外出!

时间: 2024-10-26 17:25:08

Spring + Hibernate 整合,前辈们救救小弟 我不会吝啬分的的相关文章

Spring hibernate 整合报的错

问题描述 Spring hibernate 整合报的错 SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException: Error creating bean with name

struts2 spring hibernate整合后报错

问题描述 struts2 spring hibernate整合后报错 在eclipse里面run on server之后,可以正确显示界面,但当填写表单点击按钮后出现了这个报错 Struts Problem Report Struts has detected an unhandled exception: Messages: 1.org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session; 2.Method

JSF Spring Hibernate整合:JSH1

JSF1.1 + Spring2.0 + Hibernate3.1 图示: JSF1.1 Jar包 : MyFaces1.1 Jar包: Spring与Hibernate包的配置与文章<SSH1基本配置(Struts1.2 + Spring2.0 + Hibernate3.1)>一致 地址: http://sunspot.blog.51cto.com/372554/468430

Spring HIbernate 整合问题

问题描述 测试出错,请大家帮我看看怎么回事:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'userService':Injectionofresourcemethodsfailed;nestedexceptionisorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'u

struts2 spring hibernate 整合错误?????

问题描述 严重:ExceptionstartingfilterstrutsUnabletoloadconfiguration.-action-file:/G:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/webapps/TestStruts26/WEB-INF/classes/struts.xml:11:43atorg.apache.struts2.dispatcher.Dispatcher.init(Dispatche

03SpringMVC,Spring,Hibernate整合(Date时间转换)

 项目结构 2 web.xml的配置内容如下: <?xmlversion="1.0"encoding="UTF-8"?> <web-appversion="2.5"xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schema

spring+hibernate整合问题

问题描述 一个继承hibernateDaoSupport的类UserDaoImpl.java如下:publicclassUserDaoImplextendsHibernateDaoSupportimplementsUserDao{publicvoidaddUser(UserBeanuser){/*Sessionsession=myUtilTools.getSession();session.beginTransaction();session.save(user);session.getTran

struts2+spring+hibernate整合,spring出现问题.

问题描述 先看看我的配置文件:<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

Struts Spring Hibernate整合:SSH1

Struts1.2 + Spring2.0 + Hibernate3.1 图示: Struts1.2 Jar包: Spring2.0 Jar包: Hibernate3.1 Jar包: 官方下载的 Hibernate3.1文件夹lib下的全部Jar包 其他必须包: