为什么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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报