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