Spring: ------ Spring+MyBatis整合

一、spring管理复杂对象

简单对象 :可以通过new构造方法的形式 创建的对象。
	spring工厂管理简单对象的底层: 反射+构造方法

复杂对象 :没有构造方法 或 不能通过new创建的对象, 如 接口、抽象类。
    Connection  con = DriverManager.getConnection(url,name,pwd);

    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder ();
    Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
    SqlSessionFactory f = builder.build(reader);

1.写代码

​ 告诉spring工厂,创建复杂对象的方式 (代码)。

​ 必须实现 FactoryBean<复杂对象的类型>

​		[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PZmIsW5d-1594526229993)(.\assets\1560307819174.png)]

2.配置FactoryBean类

​	[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NVRSsTiM-1594526229994)(.\assets\1560307864057.png)]

3.使用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O79RhqF0-1594526229994)(.\assets\1560307917091.png)]

二、spring整合mybatis

1.准备工作

​ spirng的jar mybatis的jar db-driver的jar log4j.jar mybatis-spring.jar(整合jar)

​ 增加以下依赖的jar包

 <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.12.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.3.12.RELEASE</version>
        </dependency>
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>6.0</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

2.整合分析

​	[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZhOH54Nt-1594526229998)(.\assets\1560324912209.png)]

3.整合DAO层

引入连接池的依赖jar包

 <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
</dependency>
<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.19</version>
</dependency>

在这里插入图片描述

在这里插入图片描述

4.整合业务层

业务层必须要控制事务
在这里插入图片描述
在这里插入图片描述

三、spring中的事务属性

1. 隔离性 isolation

在这里插入图片描述

2.传播性 propagation

在这里插入图片描述
在这里插入图片描述

3.只读性 read-only

​ 默认值为:false 代表可读写

​ 在开发中,查询方法 设置为true,则只能进行读操作,可以提高性能(oralce不支持)。

4.异常相关

​ roolback-for: 指定事务可以回滚的 异常类型。默认只有RuntimeException才能自动回滚。

​ no-roolback-for: 指定事务不自动回滚 的异常类型。

5.超时性 timeout

​ 指定事务的超时时间。默认值-1,代表 永不超时。

​ 其值为整数,单位秒。

6.开发中事务的通用配置【重点】

<tx:method name="query*" propagation="SUPPORTS" read-only="true"></tx:method>
<tx:method name="*"/>
query* 代表所有以query开头的方法。
* 代表所有方法,如果 在query*后进行配置,则代表 除query*以外的其它所有方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值