• MayBatis与Spring的整合


    1. 步骤

    第一步:导入相关的jar(springmybatis)

         mybatis-spring-*.jar

         spring-jdbc-*.jar

         spring-tx-*.jar

    第二步:spring的配置文件

    a)配置数据源

    b)配置SqlSession工厂

    c)配置SqlSessionTemplate

    第三步:mybatis的配置文件

    第四步:开发Mapper接口

    第五步:Mapper映射文件

    第六步:接口实现类

    第七步:Service层开发

    第八步:注册servicemapperbean

    第九步:测试.

    2. bean配置.

    <bean id="" class="bean的全限定名"/>

    3. 测试的核心类和方法

    ApplicationContext act = new ClasspathXMLApplicationContext("spring配置文件");

    Bean obj =  act.getBean("id");

    4. MapperFactoryBean注入映射器

    <bean id="xx" class="org.mybatis.spring.mapper.MapperFacotyBean">

    <property name="mapperInterface" value="mapper接口名称"/>

    <property name="sqlSessionFactory" ref="sqlSessionFactoryid"/>

    </bean>

    5. MapperScannerConfigurer 注入映射器

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

    <property name="basePackage" value="com.sm.dao"></property>

    </bean>

    注意:会读取整个包下的所有的Mapper接口和Mapper映射文件.

        在注入Mapper,id为接口名的首字母小写.而且它会

        自动注入SqlSessonFactoryBean.

        

    6. 配置事务声明

    第一步:定义事务管理器

    <!-- 配置事务管理器(增强功能) -->

    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

    <property name="dataSource" ref="dataSource"></property>

    </bean>

    第二步: 建议者

    <!-- 配置不同方法的事物处理功能(建议者)

    <tx:advice id="txAdvice" transaction-manager="txManager">

    <tx:attributes>-->

    <!-- 配置目标方法名 -->

    <tx:method name="insert*" propagation="REQUIRED" isolation="DEFAULT" timeout="-1" no-rollback-for="" rollback-for="RuntimeException"/>

    <tx:method name="delete*"/>

    <tx:method name="update*"/>

    <tx:method name="find*" propagation="SUPPORTS"/>

    <tx:method name="*"/>

    <tx:attributes>

    <tx:advice>  

    第三步: 配置切面

    <aop:config>

    <aop:pointcut expression="execution(* com.sm.service..*.*(..))" id="txPointcut"/>

    <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>

    </aop:config>

    7. 事务属性

    propagation:事务传播机制

    REQUIRED:如果存在事务,则支持这个事务,如果不存在事务,就开启一个事务

    REQUIRES_NEW:总会开启一个新事务

    MANDATORY:如果存在事务,则支持这个事务,如果不存在事务,就抛出异常

    NESTED:如果存在事务,会开启一个事务去嵌套,如果不存在事务,与REQUIRED一样

    SUPPORTS:如果存在事务,则支持这个事务,如果不存在事务,就在非事务的环境下运行

    isolation:事务隔离级别

    DEFAULT:默认,使用数据库的默认事务隔离级别

    READ_UNCOMMITTED:未提及读

    READ_COMMITTED:提交读 (脏读)

    REPEATABLE_READ:可重复读(不可重复读问题)

    SERIALIZABLE:串行读(幻影读)

    timeout:多少秒后超时.

    readonly:事务只读

    rollback-for:触发回滚的异常类型

    no-rollback-for:不触发回滚的异常类型

    8. 注解事务

    第一步:开启事务注解,指定事务管理器

    <tx:annotation-driven transaction-manager="txManager"/>

    第二步:配置注解事务

    @Transaction(属性=属性值,属性1=属性值1..)

  • 相关阅读:
    第37月第23天 cmmi3
    7. HTML Web Server的选择
    6. HTML URL字符编码
    5. HTML URL(Uniform Resource Locator 统一资源定位符)
    4. HTML 字符实体
    3. HTML 脚本
    2. HTML 头部 <head>
    1. HTML 文档类型 <!DOCTYPE>
    22. HTML 颜色名
    21. HTML 颜色
  • 原文地址:https://www.cnblogs.com/yang82/p/8086329.html
Copyright © 2020-2023  润新知