MyBatis与Spring整合

MyBatis与Spring整合

在实际开发中需要将mybaits与spring进行整合开发,让spring管理mybatis的SqlSessionFactory及dao(原始dao实现类及mapper接口代理对象)

1.搭建整合环境

导入jar包(mybaits-spring的整合包(由mybatis提供))
这里写图片描述
这里写图片描述

配置文件
这里写图片描述

2.原始dao开发

2.1.SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <!-- 通过setting配置mybatis的运行参数
    注意,设置运行参数会影响 mybatis的运行,一定要注意!
    -->
    <settings>
        <!-- 延迟加载的总开关 -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- 设置为false实现按需求加载  -->
        <setting name="aggressiveLazyLoading" value="false"/>
        <!-- 开启二级缓存 -->
        <setting name="cacheEnabled" value="true"/>
    </settings>

    <!-- 定义别名 -->

    <typeAliases>
        <!-- 单个别名定义
        type:类路径
        alias:别名
         -->
        <!-- <typeAlias type="cn.itcast.mybatis.po.User" alias="user"/> -->
        <!-- 批量配置 
        指定pojo所在包路径,自动扫描包下的pojo定义别名,别名为类名(首字母小写或大写都可以)
        -->
        <package name="cn.itcast.mybatis.po"/>
        <!-- 如果扫描多个包中的pojo,就写多个 package-->
        <!-- <package name=""/> -->
    </typeAliases>


    <!-- 加载mapper.xml -->
    <mappers>
        <!-- 指定classpath下的映射文件 -->
        <mapper resource="sqlmap/User.xml" />
        <!-- <mapper resource="mapper/UserMapper.xml" /> -->

        <!-- 通过mapper.java进行加载映射 
        class指定mapper接口 的路径
        要求:mapper.java文件和mapper.xml同名且在同一个目录 
        -->
        <!-- <mapper class="cn.itcast.mybatis.mapper.UserMapper"/> -->

        <!-- 包扫描方式 
        指定mapper接口所在包,自动扫描mapper接口进行加载
        要求:mapper.java文件和mapper.xml同名且在同一个目录 
        -->
        <package name="cn.itcast.mybatis.mapper"/>
    </mappers>
</configuration>

2.2.在spring容器中配置sqlSessionFactory

使用mybatis与spring整合包中的类创建sqlSesionFactory

这里写图片描述

2.3.Dao接口实现类继承SqlSessionDaoSupport

这里写图片描述

2.4.在spring容器中配置dao

这里写图片描述

2.5.从spring容器取出dao实例进行测试

这里写图片描述

3.mapper代理开发

3.1.SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <!-- 通过setting配置mybatis的运行参数
    注意,设置运行参数会影响 mybatis的运行,一定要注意!
    -->
    <settings>
        <!-- 延迟加载的总开关 -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- 设置为false实现按需求加载  -->
        <setting name="aggressiveLazyLoading" value="false"/>
        <!-- 开启二级缓存 -->
        <setting name="cacheEnabled" value="true"/>
    </settings>

    <!-- 定义别名 -->
    <typeAliases>   
        <package name="cn.itcast.mybatis.po"/>      
    </typeAliases>

    <!-- 加载mapper.xml -->
    <mappers>
        <!-- 指定classpath下的映射文件 -->
        <mapper resource="sqlmap/User.xml" />
        <package name="cn.itcast.mybatis.mapper"/>
    </mappers>

</configuration>

3.2.在spring容器中配置sqlSessionFactory

这里写图片描述

3.3.mapper.xml

这里写图片描述

3.4.mapper.java

这里写图片描述

3.5.spring与mybatis整合生成代理对象方法1 (MapperFactoryBean)

使用org.mybatis.spring.mapper.MapperFactoryBean

这里写图片描述

使用此方法需要在spring容器中配置很多的mapper的bean,比较麻烦,不推荐使用。

3.6.spring与mybatis整合生成代理对象方法2 (扫描器)

这里写图片描述

推荐使用mapper扫描器!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值