我的思路是在定义每个控制器时都使用如下方法应用sessionFactory
<bean id="mycontoller" class="my.Mycontoller">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>

解决方案 »

  1.   

    那位高手能把自己配置的spring1.2+hibernate3.0(或者只发一个很简单的例子即可,能增,删,改,查)发到,另外开帖重谢。
      

  2.   

    你是用什么开发的啊
    感觉编辑器有点问题IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)
    应该是java/lang/String但前面多了一些
      

  3.   

    你的连接写的有问题,没有连上,不能创建'sessionFactory' applicationContext.xml象下面的写法******************************************************************************
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><!--
      - Application context definition for Petclinic on Hibernate.
    -->
    <beans> <!-- 如果你用的是连接池,就用下面的JNDI-->
    <!--<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName"><value>java:/comp/env/jdbc/connectDB</value></property>
    </bean>-->        <!-- 如果不是连接池,象下面的直接连I-->
      <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName"><value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></property>
    <property name="url"><value>jdbc:microsoft:sqlserver://192.168.100.100:1433;selectMethod=Cursor;DatabaseName=xcsite</value></property>
    <property name="username"><value>sa</value></property>
    <property name="password"><value>sa</value></property>
      </bean><bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    <property name="dataSource"><ref local="dataSource"/></property>
    <property name="mappingResources">
    <value>user.hbm.xml</value>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
    <prop key="hibernate.show_sql">true</prop>
    </props>
    </property>
    </bean>
            <!--假设你的DAO类为:com.User.java-->
    <bean id="user" class="com.User">
    <property name="sessionFactory"><ref local="sessionFactory"/></property>
    </bean></beans>
    ***************************************************************************
    下面写一个简单的测试:
    import java.io.*;
    import org.springframework.beans.factory.xml.XmlBeanFactory;
    import dhcc.hibernate.dao.impl.RoleDao;
    import dhcc.hibernate.model.THymdRole;
    import dhcc.struts.form.impl.RoleActionForm;public class SpringTest {    public static void main(String[] args) {
            try {
                InputStream is = new FileInputStream("D:\\applicationContext.xml");//这里写你的applicationContext.xml文件路径
                XmlBeanFactory factory = new XmlBeanFactory(is);            RoleDao userDAO = (RoleDao) factory.getBean("user");            com.User user = new com.User();
                user.方法();        } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
      

  4.   

    不好意思下面的写错了。           RoleDao userDAO = (RoleDao) factory.getBean("user");            com.User user = new com.User();
                user.方法();改为:
           com.User user = (com.User) factory.getBean("user");
                user.方法();
      

  5.   

    在各位前辈帮助下,已经可以向数据库增加数据了,但是读时有问题,请大家帮我看看。
    Transaction tx = sess.beginTransaction();
    List result = sess.createQuery("from user_info").list();//这行出错
    tx.commit();
    错误如下:
    java.lang.NoClassDefFoundError: antlr/ANTLRException
    org.hibernate.hql.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:27)
    org.hibernate.impl.SessionFactoryImpl.createQueryTranslators(SessionFactoryImpl.java:357)
    org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:423)
    org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:884)
    org.hibernate.impl.SessionImpl.list(SessionImpl.java:834)
    org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
    hibernate.Hi_Page.handleRequestLogic(Hi_Page.java:142)
    com.framework.right.AbstractLogicController.handleRequestInternal(AbstractLogicController.java:33)
    org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:128)
    org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
    org.springframework.web.servlet.FrameworkServlet.serviceWrapper(FrameworkServlet.java:386)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:346)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      

  6.   

    to layueer(爱伤怀,冲向五颗星)
    谢谢.也请大家再帮帮我吧!
      

  7.   

    我试了find方法也出同样的错,是不是我包用的有问题,但是插入是对的呀!我WEBcglib.jar
      

  8.   

    我试了find方法也出同样的错,是不是我包用的有问题,但是插入是对的呀!我WEBcglib.jar
      

  9.   

    我试了find方法也出同样的错,是不是我包用的有问题,但是插入是对的呀!我WEB-INF\lib下有cglib.jar,cglib-2.0-rc2.jar,jta.jar,odmg-3.0.jar,大家帮我看下。
      

  10.   

    呵呵,这几天夏休一直没上来看,没注意你的短信。
    我用的是hibernate2.1.2,spring1.1,你说的hibernate3.0我没用过,但是可以肯定是cglib-full-2.0.2.jar这个包的版本可能不对。你去到spring源代码包的lib下找一个这个包,spring1.2带的不一定是我提供给你的这个版本,可能比这个还要新。这个包的功能就是动态生成字节,是一个强大的,高性能,高质量的Code生成类库,hibernate动态生成po就是利用的这个包。btw:hibernate3.0和hibernate2的有些不一样,所以spring1.2的版本中find等方法调用方式也和spring1.1封装的不一样。听说好象find这个方法被去掉了?
      

  11.   

    你说的cglib-2.0-rc2.jar是hibernate2.1带的,我在2.1下用这个包都不行,所以3.0肯定是跑不起来的,呵呵。