zoukankan      html  css  js  c++  java
  • Spring与MyBatis整合

    SpringMyBatis整合

    一、概述

    MyBatisSpring进行整合,主要解决的问题就是将SqlSessionFactory对象交由Spring容器来管理,所以,该整合,只需要将SqlSessionFactory的对象生成器SqlSessionFactoryBean注册在Spring容器中,再将其注入给Dao的实现类即可完成整合。

    二、Mapper动态代理实现整合

    1)导入相关jar包、定义映射文件mapper

    Dao 接口的包中创建 MyBatis 的映射文件 mapper,命名与接口名相同,本例为IStudentDao.xmlmapper 中的 namespace 取值也为 Dao 接口的全限定性名。

       

    2)定义MyBatis主配置文件

    src下定义Mybatis的主配置文件,命名为mybatis.xml

    注意两点:

    1,主配置文件中不再需要数据源的配置了。因为数据源要交给 Spring 容器来管理了。  

    2,这里对 mapper 映射文件的注册,使用package标签,即只需给出 mapper 映射文件所在的包即可。因为 mapper 的名称与 Dao 接口名相同,可以使用这种简单注册方式。这种方式的好处是,若有多个映射文件,这里的配置也是不用改变的。当然,也可使用resource标签方式。

      

    3)定义Spring配置文件

    • 注册SqlSessionFactoryBean

     

    使用 MapperFactoryBean 生成 Dao 代理对象

    由于使用 Mapper 动态代理方式没有 Dao 实现类,所以 Dao 的实现类对象由代理工厂生成:MapperFactoryBean 映射工厂 Bean。

     

    添加事务配置

     

    三、支持扫描的 Mapper 动态代理实现整合

    Mapper 扫描配置器 MapperScannerConfigurer 会自动生成指定的基本包中 mapper 的代理对象。该 Bean 无需设置 id 属性。此时需要删除 MapperFactoryBean 的配置。

     

    Service 注入接口名

    Service 注入 Mapper 代理对象时需要注意,由于通过 Mapper 扫描配置器MapperScannerConfigurer 生成的 Mapper 代理对象没有名称,所以在向 Service 注入 Mapper代理时,无法通过名称注入。但可通过接口的简单类名注入,因为生成的是这个 Dao 接口的对象,这是多态的应用。

      

    Dao

     

    DaoXml

     

    实体类

     

    Service接口层

     

    Service实现类

     

    Jdbc.properties工具类

     

    测试类

     

    二.注解方式

     

    Dao添加注解

     

    Service实现层添加注解

     

  • 相关阅读:
    第19篇-Kibana对Elasticsearch的实用介绍
    第18篇-用ElasticSearch索引MongoDB,一个简单的自动完成索引项目
    第17篇-使用Python的初学者Elasticsearch教程
    第16篇-关于Elasticsearch的6件不太明显的事情
    第15篇-使用Django进行ElasticSearch的简单方法
    第14篇-Python中的Elasticsearch入门
    第13篇-Elasticsearch查询-术语级查询
    第12篇-Elasticsearch全文查询
    MQTT
    rest-framework-@action()装饰器
  • 原文地址:https://www.cnblogs.com/qinzhenyu/p/11799312.html
Copyright © 2011-2022 走看看