Mybatis--创建mapper接口

article/2025/6/7 6:28:15

创建mapper接口

MyBatis中的mapper接口相当于以前的dao(原来的dao是有dao的接口以及dao的实现类)。但是区别在于,mapper仅仅是接口,我们不需要提供实现类。因为我们的mybatis里面有面向接口编程,只需要创建mapper接口,当我们通过mybatis中的方式去创建mapper接口的对象,然后调用这个接口中的方法,就会自动对应某个sql语句,并且执行。

接下来创建mapper接口,表,实体类

1.

2.要明白仍然需要将数据库中的数据转换成java中的数据,即我们数据库查询的数据转换的其实就是实体类对象(保证字段名和属性名一致,用的反射---把我们查找出来的字段名作为我们当前的属性名,然后查找这个属性并且为它赋值)

3.创建mapper接口,相当于我们原来的dao(dao取名应该和我们操作的表和它对应的实体类相关,即这里UserMapper)(为什么要创建这个接口,因为Mybatis里面有面向接口编程的功能,每当我们去调用这个接口中的方法,它就自动匹配一个sql语句并且执行)

创建MyBatis的映射文件

- 相关概念:ORM(Object Relationship Mapping)对象关系映射。  

  - 对象:Java的实体类对象  

  - 关系:关系型数据库  

  - 映射:二者之间的对应关系

| Java概念 | 数据库概念 |

| 类-------->表 |

| 属性---->字段/列 |

| 对象----->记录/行 |

- 映射文件的命名规则

  - 表所对应的实体类的类名+Mapper.xml

  - 例如:表t_user,映射的实体类为User,所对应的映射文件为UserMapper.xml

(因为以后映射文件可能会有多个,它的命名规则与mapper接口一致,而我们的mapper接口又相当于dao,一张表操作相当于一个dao,即对应的一个mapper接口;有几张表就可能对应几个mapper接口和mapper映射文件)

(namespace的值和一个类的全类名一致,什么什么的mapper接口)

  - 因此一个映射文件对应一个实体类,对应一张表的操作

  - MyBatis映射文件用于编写SQL,访问以及操作表中的数据

  - MyBatis映射文件存放的位置是src/main/resources/mappers目录下

- MyBatis中可以面向接口操作数据,要保证两个一致(首先我们要明白调用这个mapper接口中的方法,就是来执行这个sql的)(id表示sql语句的唯一标识,我们的映射文件可以写一个sql也可以写多个,怎么让当前的所调用的方法去对应我们的这个sql语句)

  - mapper接口的全类名和映射文件的命名空间(namespace)保持一致

  - mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致

表--实体类--mapper接口--映射文件

核心映射文件和映射文件如下不同:所使用的dtd文件不同!

最后在核心映射文件添加映射文件


http://www.hkcw.cn/article/HiwdDsObbu.shtml

相关文章

vue3:Table组件动态的字段(列)权限、显示隐藏和左侧固定

效果展示 根据后端接口返回&#xff0c;当前登录用户详情中的页面中el-table组件的显示隐藏等功能。根据菜单id查询该菜单下能后显示的列。 后端返回的数据类型: 接收到后端返回的数据后处理数据结构. Table组件文件 <!-- 自己封装的Table组件文件 --> onMounted(()>…

力扣HOT100之多维动态规划:1143. 最长公共子序列

这道题之前刷代码随想录的时候做过&#xff0c;但是现在又给忘干净了&#xff0c;这道题需要用二维dp数组来做&#xff0c;看了一下自己当时写的博客&#xff0c;一下子就看懂了。这道题的子序列可以不连续&#xff0c;所以dp数组的定义和最长重复子数组不一样&#xff0c;我总…

无锁队列—C++内存序最佳实践

叙述方式&#xff1a; 1.背景介绍 &#xff08;使用场景&#xff09; 2.讲结论 (无锁队列实现) 3.讲内存序的使用&#xff08;通用方式&#xff09; 一、背景 本文通过一个“单生产者-单消费者”模型的场景&#xff0c;讲解基于C原子操作和内存序实现的无锁队列 在生产者…

ADC模数转换控制

目录 1. Convst信号的功能本质 1.1 核心作用 1.2 关键优势 1.3 Convst与SPI接口的协作关系 2.实际设计要点 2.1 硬件连接方案 2.2 时序约束&#xff08;以AD7685为例&#xff09; 2.3 多片ADC同步策略 3.高级应用技巧 3.1 动态调整采样率 3.2 抗干扰设计 3.3 故障排查 4.总…

QT常用控件(1)

控件是构成QT的基础元素&#xff0c;例如Qwidget也是一个控件&#xff0c;提供了一个‘空’的矩形&#xff0c;我们可以往里面添加内容和处理用户输入&#xff0c;例如&#xff1a;按钮&#xff08;QpushButton&#xff09;&#xff0c;基础显示控件&#xff08;Lable&#xff…

Linux系统-基本指令(5)

文章目录 mv 指令cat 指令&#xff08;查看小文件&#xff09;知识点&#xff08;简单阐述日志&#xff09;more 和 less 指令&#xff08;查看大文件&#xff09;head 和 tail 指令&#xff08;跟查看文件有关&#xff09;知识点&#xff08;管道&#xff09;时间相关的指令&a…

C 语言学习笔记(预处理和库文件)

内容提要 预处理库文件 预处理 预处理编译汇编链接 什么是预处理 预处理就是在源文件&#xff08;.c文件&#xff09;编译之前&#xff0c;所进行的一部分预备操作&#xff0c;这部分操作是由预处理器&#xff08;预处理程序&#xff09;自动完成。当源文件在编译时&#x…

谷歌地图高清卫星地图软件(Google Earth)v6.0.3.2197 中文版 - 前端工具导航

谷歌地图6.0Google Earth是一款谷歌地图高清卫星地图软件&#xff0c;能够实时监测并提供最准确的地图信息&#xff0c;地球上的任意一块地区都能够准确定位并放大查看&#xff0c;覆盖范围广&#xff0c;精度高&#xff0c;非常实用&#xff01; 谷歌卫星高清地图 下载链接&a…

全球治理指标数据(1996-2023)

1945 全球治理指标&#xff08;WGI&#xff09;(1996-2023&#xff09; 数据简介 全球治理指标&#xff08;WGI&#xff09;是一个由世界银行开发的综合性数据库&#xff0c;通过政治稳定、政府效能、监管质量、法治水平、腐败控制和公民话语权六个维度系统衡量全球各国的治理…

Blocked aria-hidden on an element because its descendant retained focus.

问题出在 Element UI 的 el-table 组件 全选功能上&#xff0c;这是一个常见的无障碍&#xff08;a11y&#xff09;问题。这个错误提示与网页 accessibility&#xff08;无障碍访问&#xff09;相关&#xff0c;涉及 aria-hidden 属性的不当使用。 问题原因分析 1. Element U…

2025 年人脸识别技术应用备案政策已落地

在 AI 技术深度渗透的当下&#xff0c;人脸识别作为重要的生物识别技术&#xff0c;已广泛应用于安防、金融、零售等多领域。但随之而来的个人信息安全风险也备受关注。2025 年 6 月 1 日起《人脸识别技术应用安全管理办法》正式实施&#xff0c;企业需重视人脸识别技术应用备案…

01电气设计-380V强电部分设计

目标&#xff1a;在电气设计过程中380V的强电部分&#xff0c;一般来自与工厂&#xff0c;一般为3相5线制的380V&#xff0c;下面的应用场景是当我的用电设备&#xff08;电机&#xff0c;冷水机&#xff0c;控制器&#xff0c;驱动器&#xff0c;激光器等等&#xff09;总功率…

文件批量重命名

mv只支持单个文件命名 批量重命名用rename 例子&#xff1a; #touch命令批量创建空文件&#xff0c;文件10-15 touch file{10..15}.txt批量重命名 # 批量重命名&#xff0c;file10-15重命名为test10-15 #这里file1? 匹配的是单个字符。比如10,11等 rename file1 test1 file1…

ES的开始

ES作用 在海量数据中&#xff0c;执行搜索功能&#xff0c;使用mysql&#xff0c;效率过低&#xff0c; 如果关键字输入不准确&#xff0c;一样可以搜索到想要的数据 讲搜索关键字&#xff0c;以红色字体展示 ES介绍 ES是基于java语言并且基于Lucene编写的搜索引擎框架&#x…

【论文解读】ReAct:从思考脱离行动, 到行动反馈思考

认识从实践开始&#xff0c;经过实践得到了理论的认识&#xff0c;还须再回到实践去。 ——《实践论》,毛泽东 1st author: About – Shunyu Yao – 姚顺雨 paper [2210.03629] ReAct: Synergizing Reasoning and Acting in Language ModelsReAct: Synergizing Reasoning and…

AXURE-动态面板

1.概述 动态面板原件&#xff0c;容器类的原件一个动态面板可以有多种状态 同一时刻只展示一个状态 默认展示第一个状态 主要用于多个状态的切换可拖动 1.1 创建 将原件库中的“动态面板”原件&#xff0c;直接拖动到工作区中&#xff0c;创建空白动态面板将页面中原件选中…

AI地面垃圾检测算法智能分析网关V4打造城市/公园/校园等场景环保卫生监管解决方案

一、方案背景​ 在城市管理与场所运营中&#xff0c;地面垃圾的及时清理是环境品质的重要指标。传统人工巡检效率低、成本高&#xff0c;存在明显滞后性&#xff0c;难以满足现代环境管理需求。随着人工智能与计算机视觉技术发展&#xff0c;智能化管理成为趋势。AI智能分析网…

帝国CMS QQ登录插件最新版 获取QQ头像和QQ昵称

帝国CMS QQ登录插件最新版 获取QQ头像和QQ昵称 QQ一键登录&#xff0c;免邮箱 随机密码 获取QQ头像 获取QQ昵称 直接下载上传到帝国CMS&#xff1a;/e/memberconnect UTF-8版本 GBK的自己转换 QQ登录后的默认密码 是随机的邮箱账号前面的随机6个字母和数字 【下图字母数…

Kafka 的优势是什么?

Kafka 作为分布式流处理平台的核心组件&#xff0c;其设计哲学围绕高吞吐、低延迟、高可扩展性展开&#xff0c;在实时数据管道和大数据生态中具有不可替代的地位。 一、超高吞吐量与低延迟 1. 磁盘顺序 I/O 优化 突破磁盘瓶颈&#xff1a;Kafka 将消息持久化到磁盘&#xff…

低谷才是出成绩

有些朋友说我现在是高光&#xff0c;其实不然 之所以有这样的误解&#xff0c;是我个人的简历上是不断增加名誉。这点属实&#xff0c;看看我的词条&#xff1a;https://www.modb.pro/wiki/4245的确如此。但是其实也有误会。事情可以反过来看。因为&#xff0c;如果做技术的在…