深入实现 MyBatis 底层机制的任务阶段 5- 开发和 Mapper 接口相映射的 MapperBean

2023-09-06 15:14:17

😀前言
在软件开发的不同阶段,数据库交互是一个至关重要的组成部分,特别是在构建数据库驱动的应用程序时。在任务的第五阶段,我们将继续深入研究与 Mapper 接口和 MapperBean 类相关的开发工作。这两个组件是将数据库操作方法映射到实际 SQL 查询的关键部分,它们为我们提供了管理和执行数据库操作的关键工具。
.
在之前的部分中,我们已经创建了 Function.java 类,用于记录 Mapper 接口方法的详细信息,包括 SQL 类型、方法名、SQL 查询语句、返回类型和参数类型。另外,我们还创建了 MapperBean.java 类,该类用于将 Mapper 接口的信息进行封装,以便更好地管理这些方法。接下来,我们将深入研究这两个类的实际实现,以帮助我们更好地理解它们在整个数据库操作流程中的作用。

🏠个人主页:尘觉主页
在这里插入图片描述

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

在csdn获奖荣誉: 🏆csdn城市之星2名
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓Java全栈群星计划top前5
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🤗 端午大礼包获得者
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🥰阿里云专家博主
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 😉亚马逊DyamoDB结营

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊

🥰深入实现 MyBatis 底层机制的任务阶段 5- 开发和 Mapper 接口相映射的 MapperBean

😀实现任务阶段 5- 开发和 Mapper 接口相映射的 MapperBean

分析示意图

img

创建Function.java , 对应 Mapper 的方法信息

package com.wyxedu.wyxmybatis.config;

/**
 * Function: 记录对应的Mapper的方法信息
 */
public class Function {
    //属性
    private String sqlType; //sql类型,比如select,insert,update, delete
    private String funcName; //方法名
    private String sql;//执行的sql语句
    private Object resultType;//返回类型
    private String parameterType;//参数类型

    public String getSqlType() {
        return sqlType;
    }

    public void setSqlType(String sqlType) {
        this.sqlType = sqlType;
    }

    public String getFuncName() {
        return funcName;
    }

    public void setFuncName(String funcName) {
        this.funcName = funcName;
    }

    public String getSql() {
        return sql;
    }

    public void setSql(String sql) {
        this.sql = sql;
    }

    public Object getResultType() {
        return resultType;
    }

    public void setResultType(Object resultType) {
        this.resultType = resultType;
    }

    public String getParameterType() {
        return parameterType;
    }

    public void setParameterType(String parameterType) {
        this.parameterType = parameterType;
    }

    @Override
    public String toString() {
        return "Function{" +
                "sqlType='" + sqlType + '\'' +
                ", funcName='" + funcName + '\'' +
                ", sql='" + sql + '\'' +
                ", resultType=" + resultType +
                ", parameterType='" + parameterType + '\'' +
                '}';
    }
}

创建 MapperBean将mapper的信息 进行封装

package com.wyxedu.wyxmybatis.config;

import java.util.List;

/**
 * MapperBean: 将Mapper信息,进行封装
 */
public class MapperBean {
    private String interfaceName;//接口名

    //接口下的所有方法-集合
    private List<Function> functions;

    public String getInterfaceName() {
        return interfaceName;
    }

    public void setInterfaceName(String interfaceName) {
        this.interfaceName = interfaceName;
    }

    public List<Function> getFunctions() {
        return functions;
    }

    public void setFunctions(List<Function> functions) {
        this.functions = functions;
    }

    @Override
    public String toString() {
        return "MapperBean{" +
                "interfaceName='" + interfaceName + '\'' +
                ", functions=" + functions +
                '}';
    }
}

😄总结

本阶段的主要任务是开发 Mapper 接口和 MapperBean 类。通过创建 Function.java 类,我们能够详细记录每个 Mapper 方法的信息,包括 SQL 类型、方法名、SQL 查询语句、返回类型和参数类型。而 MapperBean.java 类将这些方法信息进行封装,使我们能够更好地管理和映射 Mapper 接口的方法。这两个组件将为后续的数据库操作提供重要的支持和结构化管理。

😍深入解析:自己实现 MyBatis 底层机制系列

第一篇–>深入剖析:自己实现 MyBatis 底层机制的步骤与原理解析

第二篇–>深入解析:自己实现 MyBatis 底层机制的任务阶段1 - 读取配置文件与建立数据库连接

第三篇–>深入实现 MyBatis 底层机制的任务阶段2 - 编写执行器与数据库操作

第四篇-> 深入实现 MyBatis 底层机制的任务阶段3 - 封装 SqlSession 到执行器

第五篇–>深入实现 MyBatis 底层机制的任务阶段4 - 开发 Mapper 接口和 Mapper.xml

第六篇–>深入实现 MyBatis 底层机制的任务阶段 5- 开发和 Mapper 接口相映射的 MapperBean

第七篇–>深入实现 MyBatis 底层机制的任务阶段 6-实现任务阶段 6- 在 WyxConfiguration, 读取 XxxMapper.xml,能够创建 MappperBean 对象

第八篇->深入实现 MyBatis 底层机制的实现任务阶段 7- 实现动态代理 Mapper 的方法

😁热门专栏推荐
想学习vue的可以看看这个

java基础合集

数据库合集

redis合集

nginx合集

linux合集

手写机制

微服务组件

spring_尘觉

springMVC

mybits

等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

更多推荐

TypeScrtpt学习

TypeScript开发环境搭建安装TS下载TS的编译器,它能够把TS文件转为JS文件。npminstall-gtypescript编译TS手动编译:使用tsc命令将一个TS文件转为JS文件。tscindex.ts//如果报错ts-node:无法将“ts-node”项识别为cmdlet、函数、脚本文件或可运行程序的名称

RP-母版 流程图 发布和预览 团队项目

母版创建一个模版,可根据形态不同引用不同母版。若不想母版受页面变化影响,也可以在引用时脱离母版创建母版:1)转换为母版2)在母版页面中添加母版拖放行为拖放行为,在母版名称上右键,、任意位置可以拖到任意位置固定位置页面引用的位置要与母版一致脱离母版引用的页面不收母版影响引用母版像拖动元件一样拖动,概要面板中母版前面会不同

哪种IP更适合你的数据抓取需求?

程序员大佬们好!今天我要和大家分享一个关于数据抓取的话题,那就是Socks5爬虫ip和动态IP之间的比较。在进行数据抓取时,选择适合自己需求的工具和技术是非常重要的。Socks5爬虫ip和动态IP都是常见的网络工具,它们在数据抓取方面都有各自的优势和特点。那么,Socks5爬虫ip和动态IP之间哪个更适合你的数据抓取需

计算机网络工程师多选题系列——操作系统

得多选者得天下啊同志们!摘录按照章节顺序,但事实上各章节习题有交叉。1操作系统1.1操作系统概论操作系统的主要功能:进程管理、存储管理、文件管理、设备管理和用户接口。操作系统的主要功能——设备管理:为用户程序提供系统调用接口、提供缓冲技术、管理通道、网卡等相关数据结构、提供虚拟设备技术。存储管理:包括内存的分配与回收和

SQLAlchemy & Oracle Database 23c Free 集成之旅

SQLAlchemy&OracleDatabase23cFree集成之旅1.SQLAlchemy是什么2.OracleDatabase23cFree是什么3.运行OracleDatabase23cFree4.学习SQLAlchemy统一教程4-1.安装依赖库4-2.建立连接-引擎4-3.使用事务和DBAPI4-3-1.

【C++ 学习 ㉑】- 详解 map 和 set(上)

目录一、C++STL关联式容器二、pair类模板三、set3.1-set的基本介绍3.2-set的成员函数3.1.1-构造函数3.1.2-迭代器3.1.3-修改操作3.1.4-其他操作四、map4.1-map的基本介绍4.2-map的成员函数4.2.1-迭代器4.2.2-operator[]五、multiset六、mu

车载信息安全

车载信息安全是指保护车辆内部信息系统和数据不受未经授权的访问、使用、泄露、篡改或破坏的措施。随着汽车行业的快速发展,车载信息系统已经成为现代汽车的重要组成部分,为驾驶员提供了导航、娱乐、通信等功能。然而,这些系统也可能成为黑客攻击的目标,从而危及车辆的安全和驾驶员的生命财产安全。车载信息安全的主要挑战包括:车载网络安全

《TCP/IP网络编程》阅读笔记--多线程服务器端的实现

目录1--多线程的优点2--进程和线程的差异3--线程创建4--线程使用5--线程安全问题6--互斥量7--信号量8--线程销毁9--多线程并发聊天程序9-1--服务器端9-2--客户端9-3--测试结果1--多线程的优点多进程服务器的缺点:①创建进程的过程会带来一定的开销;②为了完成进程间的数据交换,需要特殊的IPC

数据分析三剑客之Numpy

数据分析三剑客:Numpy,Pandas,Matplotlib1.简介NumPy(NumericalPython)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。numpy是基于c语言开发,所以这使得numpy的运行速度很快,高效率运行就是numpy的一大优势。

认识数据分析

文章目录1.认识数据分析1.1数据自身的三大属性1.2建数仓数据分析的工程技术1.3数据分析解决问题的原理1.4数据分析的具体流程1.5数据的中心化和智能化1.6数据分析的四种类型和六个方向1.认识数据分析1.1数据自身的三大属性客观:用数字衡量和表现一件客观事物时,能最大程度统一大家的认知量化:量化的数据,可以利用数

SELinux

简介SELinux:SecurityEnhancedLinux,安全强化Linux自主访问控制DAC这是传统文件权限与账号关系,依据进程的拥有者与文件资源的rwx权限来决定有无存取的能力。缺点:root具有最高权限如果不小心某个进程被有心人取得,且该进程属于root权限,那么这支进程就可以在系统上进行任何资源的存取。使

热文推荐