首页 > 其他分享 >为什么MyBatis的Mpper接口不需要实现类?

为什么MyBatis的Mpper接口不需要实现类?

时间:2024-03-27 11:01:09浏览次数:25  
标签:Mapper 映射 代理 接口 SQL MyBatis Mpper

1.不是不需要实现类,而是这些mapper接口不要人为的去实现(即不需要程序员使用者去实现)。
2.它们的实现者是 MyBatis 的框架开发者,通过动态代理实现的
MyBatis 会在运行时动态创建mapper接口的实现类,这个过程是通过 Java 的反射机制和 CGLIB 库来完成的。
调用 Mapper 接口中的方法时,MyBatis 会根据接口方法的名称和配置文件中定义的 SQL 映射关系,动态地创建一个代理对象。这个代理对象在执行方法时,会负责执行对应的 SQL 语句,并将结果映射回 Java 对象

使用流程:
1.配置:定义 Mapper 接口+对应的 XML 文件/注解来指定 SQL 语句和映射关系。
MyBatis 配置文件(mybatis-config.xml)中会指定 Mapper XML 文件的位置或者注册 Mapper 接口。
2.启动
SQL 语句和映射关系加载至内存
3.创建 SqlSessionFactory
4.获取 SqlSession
5.动态代理
程序调用 Mapper 接口的方法时,MyBatis 使用 Java 的动态代理机制来创建一个代理对象。这个代理对象会拦截接口方法的调用。
6.执行 SQL 语句
代理对象拦截到接口方法后,根据方法名称找到SQL 语句和映射关系。
通过SqlSession执行SQL
7.结果映射
将执行结果映射为JAVA对象
8.返回结果
9.关闭SqlSession

标签:Mapper,映射,代理,接口,SQL,MyBatis,Mpper
From: https://www.cnblogs.com/kisssheep/p/18098463

相关文章

  • Python接口自动化测试的学习笔记9——logging日志
    1、引言在进行Python接口自动化测试时,日志记录是一项至关重要的任务,它可以帮助开发者追踪测试过程中的详细信息,包括请求与响应数据、错误消息、调试信息等,从而有效地定位问题并提高测试效率。下面,我们将探讨如何在Python接口自动化测试项目中构建和配置一个强大的日志记录系统......
  • 轻松掌握:使用 API 接口自动缩短网址的秘诀
    在互联网的世界里,网址缩短已经成为了一种时尚和必要。长而复杂的网址不仅难以记忆,还可能让人望而却步。但是,现在有了API接口,我们可以轻松地将网址自动缩短,让分享变得更加简单和高效!本文将以具体例子详细介绍如何使用API接口实现网址缩短。首先,让我们来了解一下什么是API......
  • 淘宝/天猫获得淘宝app商品详情原数据 API接口数据item_get_app,官方授权接口
     淘宝/天猫的API接口,特别是那些用于获取淘宝app商品详情原数据的接口,提供了强大的功能,使得开发者能够轻松地获取和处理淘宝平台上的商品信息。以下是这些API接口的主要功能:公共参数请求地址:item_get名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretSt......
  • 京东获得JD商品详情 API接口数据item_get(内含详细步骤)
    onebound.jd.item_get公共参数注册账号获取测试key 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认yes,将调用缓存......
  • 阿里巴巴中国站获得1688商品详情 API接口数据item_get(内含详细步骤)
     阿里巴巴中国站(1688)提供的商品详情API为开发者提供了丰富的功能,使他们能够通过编程的方式访问和获取1688平台上的商品详细信息。以下是关于这个API功能的一些主要介绍:获取商品详情信息:通过API,开发者可以查询指定商品的详细信息,包括商品标题、描述、价格、库存等。这些信息......
  • 淘宝/天猫获得淘宝app商品详情原数据 API接口数据,有哪些常见的错误
    淘宝API在使用过程中可能会遇到多种错误,这些错误可能由不同的原因引起。以下是一些常见的淘宝API错误及其可能的原因:签名错误:这通常是由于签名生成过程中出现问题导致的。例如,签名参数错误、签名方法不正确或签名顺序不一致等都可能导致签名错误。API接口权限不足:如果调用A......
  • 【python】服务端和客户端 RESTful 接口上传 E
    哈喽,大家好,我是木头左,物联网搬砖工一名,致力于为大家淘出更多好用的AI工具!服务端代码1.安装Flask和Flask-RESTful需要安装Flask和Flask-RESTful这两个库。Flask是一个轻量级的Web框架,而Flask-RESTful则是一个为Flask添加了RESTfulAPI支持的扩展。pipinstall......
  • 【知识点】接口和抽象类的区别
    相同点:都不能实例化都可以被实现或者继承继承或者实现的子类需要实现全部抽象方法,否则需要声明为抽象类不同点:不同点抽象类接口声明abstractinterface继承/实现extendsimplements构造器可以有构造器不能有构造器方法抽象方法和具体方法抽象方法......
  • 分析nginx日志统计接口情况
    一、背景近来打算对后端接口进行优化,所以要先对现有接口的情况进行统计。因为相关业务接口是index.php?action=XXX的形式,所以公司运维的管理平台并不能满足需求,所以要自行处理nginx日志获取接口的情况了。二、处理思路1.nginx日志中不止包含相关接口的日志,所以先要根据关键字......
  • FPGA接口系列——UART
    FPGA接口系列——UART一、UART简介UART是一种采用异步串行通信方式的通用异步收发传输器。这里我们主要弄明白两个问题:①什么是串行通信,与并行通信有什么区别②同步串行通信和异步串行通信有什么区别③我们常说的UART和RS232以及RS485又有什么区别?串行通信和并行通信......