首页 > 其他分享 >【Mybatis】

【Mybatis】

时间:2024-09-18 14:37:45浏览次数:1  
标签:MapperFactoryBean 映射器 Spring 接口 bean Mybatis

 

MyBatis的一大亮点就是可以不用DAO的实现类。

方法1(不推荐):Mybatis在与Spring集成的时候可以配置MapperFactoryBean来生成Mapper接口的代理.

MapperFactoryBean 创建的代理类实现了 UserMapper 接口,并且注入到应用程序中。 因为代理创建在运行时环境中(Runtime,译者注) ,那么指定的映射器必须是一个接口,而 不是一个具体的实现类。上面的配置有一个很大的缺点,就是系统有很多的配置文件时 全部需要手动编写

<beans>
      <bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
         <property name="mapperInterface" value="dao.UserMapper"/>
         <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
     </bean>
   </beans>

方法2(推荐):在MyBatis-Spring中提供了一个转换器MapperScannerConfig它可以将接口转换为Spring容器中的Bean,

将 会 查 找 类 路 径 下 的 映 射 器 并 自 动 将 它 们 创 建 成 MapperFactoryBean;在Spring的配置文件中可以采用以下所示的配置将接口转化为Bean。

1、basePackage 属性是让你为映射器接口文件设置基本的包路径。 你可以使用分号或逗号 作为分隔符设置多于一个的包路径。每个映射器将会在指定的包路径中递归地被搜索到。

2、MapperScannerConfigurer 支 持 过 滤 由 指 定 的 创 建 接 口 或 注 解 创 建 映 射 器 。 annotationClass 属性指定了要寻找的注解名称。 

注 意 , 没 有 必 要 去 指 定 SqlSessionFactory 或 SqlSessionTemplate , 因 为 MapperScannerConfigurer 将会创建 MapperFactoryBean,之后自动装配。但是,如果你使 用了一个 以上的 DataSource ,那 么自动 装配可 能会失效 。这种 情况下 ,你可 以使用 sqlSessionFactoryBeanName 或 sqlSessionTemplateBeanName 属性来设置正确的 bean 名 称来使用。这就是它如何来配置的,注意 bean 的名称是必须的,而不是 bean 的引用,因 此,value 属性在这里替代通常的 ref:

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
    <property name="basePackage" value="com.xx.xx.dao"/>
 </bean>
 <context:component-scan base-package="service"/>

 

标签:MapperFactoryBean,映射器,Spring,接口,bean,Mybatis
From: https://www.cnblogs.com/clarino/p/18418447

相关文章

  • springboot整合mybatis(使用druid线程池)
    pom引入<mybatis.version>2.3.2</mybatis.version> <druid.version>1.1.23</druid.version><!--数据库--><dependency><groupId>org.mybatis.spring.boot</groupId><art......
  • 【Spring Boot】整合MyBatis-Plus
    1.引言在Java开发中,MyBatis是一个流行的数据持久层框架,用于简化SQL操作。而MyBatis-Plus则是在MyBatis基础上进行增强,提供了更多的功能,减少了重复代码,提升了开发效率。本文将介绍在SpringBoot中整合MyBatis-Plus,实现基础的增删改查操作。2.项目环境• JDK8+•......
  • Mybatis-generator自动生成代码的步骤
    使用MyBatisGenerator自动生成MyBatis代码的步骤1.添加依赖首先,确保你的项目中包含了MyBatisGenerator的依赖。对于Maven项目,在pom.xml文件中添加如下依赖(请替换为适合你项目的版本号):<dependency><groupId>org.mybatis.generator</groupId>`在这里插入代码片......
  • Mybatis学习笔记
    1.什么是MybatisMybatis是一款优秀的持久层框架,用于简化JDBC的开发。 2.MyBatis入门2.1快速入门使用Mybatis查询所有用户数据1.准备工作(创建springboot工程、数据库表user、实体类user)2.引入Mybatis的相关依赖,配置Mybatis(数据库连接信息)3.编写SQL语句(注......
  • MyBatis 详解
    目录目录一、MyBatis是什么二、为什么使用MyBatis(一)灵活性高(二)性能优化(三)易于维护三、怎么用MyBatis(一)添加依赖(二)配置MyBatis(三)创建实体类和接口(四)使用MyBatis一、MyBatis是什么MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。......
  • mybatis知识复习
    配置文件方式--快速入门这里插入几个学习时的错误:mybatis-config.xml找不到Mapper:我的原因是把Mapper放到了Java下的SRC路径,但IDEA并不会寻找到,所以要么是在pom.xml中加上。。。(没看),我用的是:在resource下建立一个同名的包:com/。/xxx如果不想建立一个新包(但一般都会吧?),参考这个......
  • java毕业设计——基于java+Mybatis的仓库管理系统设计与实现(全套源码+配套论文)——仓
    基于java+Mybatis的仓库管理系统设计与实现(毕业论文+程序源码)大家好,今天给大家介绍基于java+Mybatis的仓库管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。文章目录:基于java+Mybatis的仓库管理系统设计与实现(毕业论文+程序源码)1、项目简介2、资源......
  • MyBatis系统学习(三)——动态SQL
    MyBatis是一款优秀的持久层框架,它通过XML或注解方式将SQL语句与Java对象映射起来。动态SQL是MyBatis中非常强大的功能之一,能够根据不同的条件动态生成SQL语句。动态SQL通过各种标签来灵活生成SQL,从而避免了在代码中拼接SQL的复杂性和冗余性。接下来,我们会......
  • mybatis plus多表查询的扩展
    mybatisplus提供了简单的CURD操作,但是有时我们的业务需要要求进行多表查询,这个时候,我们就需要加入多表查询的扩展了。 mybatis-plus-join,基于mybatis-plus的所有优点,然后还支持连表查询,还支持一对多,一对一的查询。mybatis-plus-join是mybatisplus的一个多表插件,上手简单,几分钟就......
  • SpringBoot:Web开发(基于SpringBoot使用MyBatis-Plus+JSP开发)
    目录前期准备构建项目(IDEA2023.1.2,JDK21,SpringBoot3.3.3)添加启动器Model准备这里我们利用MybatisX插件生成我们所需要的实体类、数据访问层以及服务层注意选择MyBatis-Plus3以及Lombok然后再在service接口中定义我们所需要的方法以及实现类(利用MyBatis-Plus省去我们......