Spring And Hibernate整合

3 篇文章 0 订阅
1 篇文章 0 订阅

Spring And Hibernate整合

整合点:

  • jar包
    需要的jar包:
    导入Hibernate的必须包
    需要spring-orm.jar
  • 整合的配置文件
    因为在直接使用hibernate的时候 有核心的配置文件 所以我们可以直接使用配置文件创建
    但是和spring整合的时候 要将sessionFactory交由spring来管理 所以我们不能手动的控制他的创建过程

    重点在于整合的配置文件

  • 配置文件

    <!-- sessionFactory 配置文件 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <!-- 配置数据源 -->
        <property name="dataSource" ref="dataSource"></property>
        <!-- 配置hibernate属性 -->
        <property name="hibernateProperties">
            <props>
                <!-- 方言-->
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
            </props>
        </property>
        <!-- 实体类的扫描路径 -->
        <property name="packagesToScan">
            <value>com.cdsxt.po</value>
        </property>
    

事务配置

如果没有事务的话  则  在操作的时候  都需要  手动处理  需要在系统中配置自动事务管理

<!-- -事务管理器->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager" >
        <!--session工厂 -->
        <property name="sessionFactory" ref="sessionFactory" />
</bean>


关于事务配置  需要aop支持  并且需要在配置文件中导入tx命名空间

事务配置分类:
    第一种:基于注解的配置  用tx:annotation-driven 标签开始 注解事务
            需要用@Transactional在业务层中 进行标记

    第二种:基于xml配置(申明是事务管理)
            需要用到tx命名空间
                tx:advice进行声明 代码增强

                aop:config
                    aop:advisor 配置切面

            Code:
            <tx:advice id="txAdvice" transaction-manager="transactionManager">
                <tx:attributes>
                    <tx:method name="query*" read-only="true"/>
                    <tx:method name="find*" read-only="true"/>
                    <tx:method name="*" read-only="true"/>
                    <tx:method name="save*" propagation="REQUIRED"/>
                    <tx:method name="update*" propagation="REQUIRED"/>
                </tx:attributes>
            </tx:advice>
        <!--配置aop切入-->
        <aop:config>
            <aop:pointcut expression="execution(public * com.cdsxt.service.impl.*.*(..))" id="txPointcut"/>
            <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
        </aop:config>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值