hibernate.xml的配备和详细说明

hibernate.xml的配置和详细说明
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN/EN"

    "http://www.springframework.org/dtd/spring-beans.dtd">

<!-- 声明beans标签 beans标签严格按照spring-beans.dtd的格式定义 -->

<beans>

<!-- beans内的标签,格式要严格遵循spring-beans.dtd的定义,对于正确定义的标签,

    spring都会按照既定定义的含义去进行解析。

    beans的主要子标签: bean。beans标签中只有一个子标签:bean,而且该bean子标签严格按按照spring-beans.dtd的

    定义进行编辑。

    bean的主要属性:

       id:  该bean的id。

       class:和spring注入java类一样,需要制定该bean的class,只不过class是spring自身的java类。

    bean的主要子标签:

       property:每一个java类会有不同的属性property,初始化java类的时候需要初始化属性,spring-beans.dtd要求

           可以使用property子标签进行属性初始化,并使用property的子标签value进行赋值或者使用property的value属性

           进行赋值。 -->

    <bean id="propertyConfigurer"

       class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

       <!-- 声明一个 配置文件地址文件夹配置器 类,该类主要有一个参数:location,location指定该类去哪里读取配置文件

       配置文件配置类就会对该property文件进行读取。       -->

       <!-- 数据库信息文件 -->

       <property name="location">

           <value>WEB-INF/hibernate.properties</value>

       </property>

       <!-- 给配置文件配置器 的属性:location赋值,即制定让该类去读取这个property配置文件,然后会将配置文件爱你

       的内容载入缓存,随时可以提取使用。

       经过这样的配置,我们得到了本程序的主要配置信息,主要就是数据库配置信息。 -->

    </bean>

    <!-- 数据源 -->

    <bean id="dataSource"

       class="org.apache.commons.dbcp.BasicDataSource"

       destroy-method="close">

       <!-- 声明一个基础数据源对象,并指定当调用该类的close方法是,销毁该基础数据源对象。

       spring的基础数据源对象应该可以获得时下流行所有的主流数据库,可以建立和各个数据库的桥接。

       作为web应用的数据源,为web应用提供数据。 -->

       <property name="driverClassName">

           <value>${driverClassName}</value>

       </property>

       <!-- 配置基础数据源的驱动类名称属性,该属性指明用哪种数据库驱动去连接数据库,也就指定了

       你用的是那种数据库,value来自原上边的配置文件配置器从配置文件hibernate.properties读取的内容。

       hibernate.properties以键值对的方式定义一些属性变量。 -->

       <property name="url">

           <value>${url}</value>

       </property>

       <!-- 配置基础数据源对象的url,url是数据库连接字符串 -->

       <property name="username">

           <value>${username}</value>

       </property>

       <!-- 配置基础数据源对象的用户名,也就是数据库的用户名 -->

       <property name="password">

           <value>${password}</value>

       </property>

       <!-- 配置基础数据库对象的密码,也就是数据库的密码。 -->

       <!-- 以上配置属性的值都来自于属性配置器,所以属性配置器对象的声明要在基础数据源对象之前。

       经过这样的配置,现在我们得到了数据源了,可以向web程序提供数据了。     -->

    </bean>

    <!-- 处理CLOB对象 -->

    <bean id="nativeJdbcExtractor"     class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"

       lazy-init="true" />

    <bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler"

       lazy-init="true">

       <property name="nativeJdbcExtractor">

           <ref local="nativeJdbcExtractor" />

       </property>

    </bean>


    <!-- sessionFactory -->

    <bean id="sessionFactory" 

        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

      <!-- 声明一个本地session会话工厂对象,用来创建会话对象:每一个会话对象可以看成一个数据库连接。 

      会话对象主要的属性:

      dataSource:指定会话对象的数据源对象。就是让应用和这个数据源会话,也就是从这个数据源取数据。

      lobHandler:什么什么处理器???

      mappingResources:映射的资源文件,主要是heibernate的hbm文件。   每一个资源文件的作用就是说明:web应用中的javabean的class对应的是数据库中的哪个表table,所以,

            对应这个javabean的查询,添加,删除的操作就是对相应的表的操作。

      hibernateProperties:heibernate的配置信息,主要配置在系统运行时hibernate的参数-->

       <property name="dataSource">

           <ref local="dataSource" />

       </property>

    <!-- 会话对象需 -->  

       <!-- 处理CLOB对象 -->

       <property name="lobHandler" ref="lobHandler" />

       <property name="mappingResources">

<list> 

  <value>org/hdht/business/uim/config/Role.hbm.xml</value>   

           </list>

       </property>



 


<property name="hibernateProperties">
           <props>
              <prop key="hibernate.dialect">
                  ${hibernate.dialect}
              </prop>
              <prop key="hibernate.show_sql">
                  ${hibernate.show_sql}
              </prop>
              <prop key="hibernate.jdbc.batch_size">
                  ${hibernate.jdbc.batch_size}
              </prop>    
              <prop key="hibernate.cache.provider_class">
                  ${hibernate.cache.provider_class}
              </prop>
              <prop key="hibernate.hbm2ddl.auto">update</prop>
           </props>
       </property>
    </bean>    
    <!-- 通过这样设置,现在我们创建了session会话工厂对象,并将sesson工厂和基础数据源联系到一起。
       session工厂用来连接数据库,和数据库进行会话,通过对hibernate的资源的映射实现了系统java类和数据库
       的table的关联。并通过配置hibernate的属性来控制hibernate运行时的参数。
     -->
    <!-- 配置事务管理器bean -->
   <bean id="transactionManager"
         class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <!-- 声明一个heberante的事务管理器对象,该对象主要用来管理hibernate的事务的。
        事务管理器对象有一个属性:sessionFactory会话工厂。
        这样配置后,就是说:和这个事务管理器绑定的session会化工厂里的方法都采取了事务处理。
        至于怎么就采取了事务处理以及在哪里进行了事务处理,还不知道。
         -->
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

</beans> 

Hibernate·.properties的配置:
DriverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@192.168.0.175:1521:orcl
#url=jdbc:oracle:thin:@localhost:1521:orcl
username=DB_QB
password=pw123456
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
hibernate.show_sql=true
hibernate.jdbc.batch_size=50
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider