【知识整理】Spring整合Hibernate详解

    xiaoxiao2021-04-16  30

    一.spring整合Hibernate整合什么? 1.由IOC容器来管理Hibernate的sessionFactory

    2.让Hibernate使用上spring的声明式事务

    二.整合步骤: 1.加入Hibernate (1)导入jar包 (2)添加Hibernate的配置文件     1).数据源配置到IOC容器中,此处不需配置     2).关联的.hbm.xml在IOC容器中配置SessionFactory实例时进行配置     3).只需配置hibernate的基本属性:方言、sql显示及格式化、生成数据表的策略、二级缓存等

    <hibernate-configuration> <session-factory> <!-- 配置hibernate的基本属性 --> <!-- 1.数据源配置到IOC容器中,此处不需配置 --> <!-- 2.关联的.hbm.xml在IOC容器中配置SessionFactory实例时进行配置 --> <!-- 只需配置hibernate的基本属性:方言、sql显示及格式化、生成数据表的策略、二级缓存等 --> <property name="show_sql">true</property> <property name="format_sql">true</property> <property name="hbm2ddl.auto">update</property> <!-- 配置hibernate二级缓存相关 --> </session-factory> </hibernate-configuration>(3)编写持久化类对应的.hbm.xml文件 2.加入spring (1)导入jar包 (2)添加spring的配置文件

    <!-- 1.配置数据源 --> <!-- 导入资源文件 --> <util:properties id="config" location="classpath:config.properties"></util:properties> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="#{config.username}"></property> <property name="password" value="#{config.password}"></property> <property name="driverClass" value="#{config.driver}"></property> <property name="jdbcUrl" value="#{config.url}"></property> <property name="maxPoolSize" value="#{config.maxTotal}"></property> <property name="initialPoolSize" value="#{config.initialSize}"></property> </bean> <!-- 2.配置hibernate的SessionFactory实例,通过spring提供的LocalSessionFactory进行配置 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <!-- 配置数据源 --> <property name="dataSource" ref="dataSource"></property> <!-- 配置hibernate配置文件 --> <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> <!-- 配置hibernate映射文件,允许使用通配符 --> <property name="mappingLocations" value="entity/*.hbm.xml"></property> </bean> <!-- 3.配置spring的声明式事务 --> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 配置事务属性 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" read-only="true"/> tx:method name="*"/> </tx:attributes> </tx:advice> <!-- 配置事务切点,并把事务切点和事务属性关联 --> <aop:config> <aop:pointcut expression="excution(* springHibernate.service.*.*(..))" id="txPointcut"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/> </aop:config>

    转载请注明原文地址: https://ju.6miu.com/read-672848.html

    最新回复(0)