<?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