我拿到一个项目,发现这个SSH项目没有hibernate.xml,在spring里面已经配置好了,但是有点看不懂…有没有高手讲解一下,最好有代码哦

解决方案 »

  1.   

    通过spring管理hibernate的sessionfactory。具体的hibernate参数配置的spring的HibernateSessionfactory管理器。由spring包装了。
      

  2.   

    <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="myDataSource"/>
        <property name="mappingResources">
    //相当于hibernate.cfg.xml.的<mapping resource="org/hibernate/test/legacy/Simple.hbm.xml"/>
          <list>
            <value>product.hbm.xml</value>
          </list>
        </property>
        <property name="hibernateProperties"> 
    //hibernate.cfg.xml的<property name="show_sql">true</property>
          <value>
            hibernate.dialect=org.hibernate.dialect.HSQLDialect
          </value>
        </property>
      </bean>
    你看看你spring配置文件中有类似这种代码没?这就是配置hibernate的了
      

  3.   

    spring 通过sessionFactory 管理hibernate
    敏捷
    高内聚,低耦合
    理解这些关键字
      

  4.   

    已经写到Spring的配置文件中了,可以在Spring配置文件中查看相应配置。
      

  5.   

    通过spring管理hibernate的sessionfactory。具体的hibernate参数配置的spring的HibernateSessionfactory管理器。由spring包装了。
      

  6.   

    是的,h被s包装了,详见application.xml,里面即可找到配置h数据源和事务的地方,整个h提供的dao层即是spring的dao服务的一种实现,但spring并不能代替h。
      

  7.   

    <property name="packagesToScan">
        <list>
            <value>com.family168.domain</value>
        </list>
    </property>
      

  8.   

    Spring有自己的数据库源,通过配置,无需HIBERNATE的配置文件
    <bean id="dataSource"
              class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
            <property name="driverClassName" 
                      value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
            <property name="url"
                      value="jdbc:microsoft:sqlserver://localhost;DatabaseName=*"/> 
            <property name="username" value="*"/> 
            <property name="password" value="*"/> 
        </bean> 
        
        <bean id="sessionFactory"  
              class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" 
              destroy-method="close"> 
            <property name="dataSource" ref="dataSource"/> 
            <property name="mappingResources"> 
                <list> 
                    <value>com/*/hibernate/*.hbm.xml</value> 
                </list> 
            </property> 
            <property name="hibernateProperties"> 
                <props> 
                    <prop key="hibernate.dialect"> 
                        org.hibernate.dialect.SQLServerDialect
                    </prop> 
                </props> 
            </property> 
        </bean> 
      

  9.   

    大型项目一般都会有独立的hibernate和spring配置文件,
    你现在手头的项目可能只是为了省事儿,俩整合一起了,
    没什么区别,只是说明spring做的东西太多了
    你看spring的配置属性就能看出来,属性值跟hibernate里的很相似,也好理解!
      

  10.   

    1.applicationContext.xml
    WEB-INF下
    <bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
    value="oracle.jdbc.driver.OracleDriver">
    </property>
    <property name="url"
    value="jdbc:oracle:thin:@aaa:1521:bbb">
    </property>
    <property name="username" value="aaa"></property>
    <property name="password" value="aaa"></property>
    </bean>        <!--ibatis-->  --这里是配的ibatis,楼主可以对应配置其他ORM框架
    <bean id="sqlMapClient"
    class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    <property name="configLocation">
    <value>
    classpath:com\aaa\dao\impl\ibatis\SqlMapConfig.xml
    </value>
    </property>
    <property name="dataSource" ref="dataSource" />
    </bean>2.context.xml
    META-INF下<Context reloadable="true">
    <Resource 
    name="jdbc/test" 
    auth="Container"
    type="javax.sql.DataSource" 
    driverClassName="oracle.jdbc.driver.OracleDriver"
    url="jdbc:oracle:thin:@aaa:1521:bbb" 
    username="aaa"
    password="bbb" 
    maxActive="200" 
    maxIdle="30" 
    maxWait="-1" />
    </Context>
      

  11.   


    <Context reloadable="true">
    <Resource
    name="jdbc/test"
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    url="jdbc:oracle:thin:@aaa:1521:bbb"
    username="aaa"
    password="bbb"
    maxActive="200"
    maxIdle="30"
    maxWait="-1" />
    </Context> 
      

  12.   

    在ssh中spring 起的是连接strut、hibernate 桥梁的作用。也就是所谓的容器放到spring里整合。面向对象接口编程。
    整合方式有多种。只要明白原理就能高效使用 
      

  13.   

    你拿到的项目是将spring及hibernate的配置文件都放到了spring配置文件中,hibernate.cfg.xml文件中的内容被spring中的一些代码所替代,如下
    <bean id="dataSource"
         class="org.apache.commons.dbcp.BasicDataSource">
         <property name="driverClassName"
         value="oracle.jdbc.driver.OracleDriver">
         </property>
         <property name="url"
         value="jdbc:oracle:thin:@192.168.1.116:1521:orcl">
         </property>
         <property name="username" value="zxt"></property>
         <property name="password" value="11111"></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.Oracle9Dialect
         </prop>
         </props>
         </property>
         <property name="mappingResources">   <!--映射文件从 这里加入-->
         <list>
             <value>com/ssh2/model/Books.hbm.xml</value>
         <value>com/ssh2/model/Sort.hbm.xml</value>
         <value>com/ssh2/model/Press.hbm.xml</value>
        
         </list>
         </property>
        </bean>spring通过sessionFactory管理文件,并且充分体现了Java的高内聚、低耦合 ,是spring自己提供的类,有很多东西spring已经帮我们处理了,所以个人认为在ssh中使用单一的spring配置文件更方便及简单。
    两种配置方法各有优缺点,楼主可以根据自己的喜好选择相应的配置方法