Spring整合Hibernate的时候使用hibernate.cfg.xml
Spring整合Hibernate其实也就是把Hibernate的SessionFactory对象封装成:org.springframework.orm.hibernate3.LocalSessionFactoryBean
在由自己来保管和控制。
在配置LocalSessionFactoryBean的时候,如果要用到hibernate.cfg.xml配置文件,那么就要配置:
configLocations属性,这个属性就是叫Spring在配置LocalSessionFactoryBean的时候去configLocations调用该配置。
<bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><!-- 使用hibernate.cfg.xml配置文件 --><property name="configLocations"><value>classpath:hibernate.cfg.xml</value></property>....</bean>
如果,没有配置这个属性的话,hibernate.cfg.xml配置文件会被忽略的。也就是没有效果。
因为Spring的applicationContext.xml文件可以直接配置hibernate.cfg.xml中的所有内容,所以可以不需要配置hibernate.cfg.xml。
比如说:
- 在hibernate.cfg.xml中配置数据库的其它配置:
<!-- 设置数据库方言 --><property name="connection.dialect">org.hibernate.dialect.MySQLDialect</property><property name="show_sql">true</property><property name="hbm2ddl.auto">update</property>
- 在Spring的applicationContext.xml文件中配置数据库的其它配置:
<!-- 相当于hibernate.cfg.xml配置的信息 --><property name="hibernateProperties"><props><prop key="hibernate.dialect" >org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.hbm2ddl.auto">update</prop></props></property>
#############################################################################
- 在hibernate.cfg.xml中配置数据库连接池:
<!-- 设置数据库驱动 --><property name="connection.driver_class">com.mysql.jdbc.driver</property><!-- 设置数据库链接地址 --><property name="connection.url">jdbc:mysql://localhost:3306/oa</property><!-- 设置数据库账户 --><property name="connection.username">root</property><!-- 设置数据库密码 --><property name="connection.password"></property>......
- 在Spring的applicationContext.xml文件中配置数据库连接池:
<!-- 配置数据链接池 --><property name="dataSource"><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><!-- 从jdbc.properties配置文件中获取值 --><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/oa"></property><!-- 从jdbc.properties配置文件中获取值 --><property name="driverClass" value="com.mysql.jdbc.driver"></property><!-- 从jdbc.properties配置文件中获取值 --><property name="user" value="root"></property><!-- 从jdbc.properties配置文件中获取值 --><property name="password" value=""></property><!-- 其它配置 --><!-- 初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default:3 --><property name="initialPoolSize" value="3"></property>.....</property>
- 在hibernate.cfg.xml中配置实体对象的映射文件:
在hibernate.cfg.xml中配置实体对象的映射文件:<mapping resource="cn/czk/oa/domain/Department.hbm.xml" /><mapping resource="cn/czk/oa/domain/Privilege.hbm.xml" /><mapping resource="cn/czk/oa/domain/Role.hbm.xml" /><mapping resource="cn/czk/oa/domain/User.hbm.xml" />
- 在Spring的applicationContext.xml中配置实体对象的映射文件
<bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">.....<!-- 配置映射文件 --><property name="mappingResources"><list><value>cn/czk/oa/domain/User.hbm.xml</value><value>cn/czk/oa/domain/Department.hbm.xml</value><value>cn/czk/oa/domain/Role.hbm.xml</value><value>cn/czk/oa/domain/Privilege.hbm.xml</value></list></property>.....</bean>

浙公网安备 33010602011771号