Mybatis(根据id查找这一行的数据)

首先在查询之前,我们先要做些基础的工作先创建一个以你的数据库命名的model类

我的数据库的名字叫admin

我就创建了一个Admin的类

用来方便数据的访问

然后我们就要创建一个接口来声明我们要写的方法

我创建的接口命名为AdminDao

在创建一个xml的类用来实现声明的方法

<mapper namespace="dao.AdminDao">

找到对应的接口,并实现接口中定义的方法。

  1. parameterType="int"表示这个select操作接受一个int类型的参数,通常用于指定查询条件,例如id
  2. resultType="model.Admin"表示预期的查询结果将被映射到model.Admin类的实例上,即查询结果的每一行都会创建一个新的Admin对象。

下面就是你要查询的SQL语句

不过在Mybatis中给id赋的值得用#{}

因为在MyBatis中,#{}用于将参数占位符替换为实际的参数值。这种语法有几个关键点:

  1. 参数替换#{id}是一个参数占位符,它告诉MyBatis在执行SQL语句时,这里需要被替换为实际的参数值。

  2. 预处理语句:使用#{}可以防止SQL注入攻击,因为它使用了预处理语句(prepared statements)。数据库会先接收SQL语句的结构,然后分别接收参数值,这样可以确保参数值被正确地转义。

  3. 参数名称#{id}中的id是参数名称,它对应于在Java代码中传递给MyBatis方法的参数名称。例如,如果你的Mapper方法如下:

     

    Admin findAdminById(int id);

    这里的id就是参数名称,它将被插入到SQL语句中的#{id}位置。

  4. 数据类型转换:MyBatis会根据参数的实际数据类型进行适当的转换。例如,如果id是一个int类型,在数据库操作中,MyBatis会将其转换为数据库能理解的格式。

  5. MyBatis配置:在MyBatis的配置中,不需要额外设置就可以使用#{}。MyBatis默认使用#{}作为参数占位符。

  6. ${}的区别:MyBatis还提供了${}语法,它用于字符串替换,而不是参数替换。${}会将变量直接插入到SQL语句中,没有预处理语句的保护,因此如果使用不当,容易受到SQL注入攻击。

  7. 使用场景#{}通常用于<update><insert><select>语句中,用于将方法的参数映射到SQL语句的相应位置。

  8. 复杂表达式#{}也可以用于更复杂的SQL表达式中,例如,作为ORDER BYGROUP BY子句的一部分,或者在函数调用中。

然后创建一个用来输出结果得到类

我创建的类叫Test1

然后就可以看到结果了我查询的id是4

另外说明一下,我这个结果是加了日志来方便看执行过程

如果你也相加的话

只需要在mybatis.xml配置文件里加一句

<setting name="logImpl" value="STDOUT_LOGGING"/>

就可以在下面看到日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/724110.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

把Deepin塞进U盘,即插即用!Deepin To Go来袭

前言 小伙伴之前在某篇文章下留言说&#xff1a;把Deepin塞进U盘的教程。 这不就来了吗&#xff1f; 事实是可以的。这时候你要先做点小准备&#xff1a; 一个大小为8GB或以上的普通U盘 一个至少64GB或以上的高速U盘 一个Deepin系统镜像文件 普通U盘的大概介绍&#xff1…

Flink 资源静态调度

本内容是根据 Flink 1.18.0-Scala_2.12 版本源码梳理而来。本文主要讲述任务提交时&#xff0c;为 Task 分配资源的过程。 以下是具体步骤讲解&#xff1a; TaskManager 资源注册 TaskManager 在启动时&#xff0c;会向 ResourceManager 注册资源。ResourceManager 会将 Tas…

AI 代理可以改变 B2B 电子商务的业务动态

今天你听到的都是人工智能&#xff0c;这是有原因的。在过去 18 个月里&#xff0c;我们经历了比以往更多的人工智能创新。人工智能一夜之间走出了实验室&#xff0c;并成为可行的商业驱动力。 一个有望赢得巨大胜利的行业是 B2B电子商务。事实上&#xff0c;B2B 电子商务可以…

2021 hnust 湖科大 C语言课程设计报告+代码+流程图源文件+指导书

2021 hnust 湖科大 C语言课程设计报告代码流程图源文件指导书 目录 报告 下载链接 https://pan.baidu.com/s/14NFsDbT3iS-a-_7l0N5Ulg?pwd1111

嵌入式实验---实验二 中断功能实验

一、实验目的 1、掌握STM32F103中断程序设计流程&#xff1b; 2、熟悉STM32固件库的基本使用。 二、实验原理 1、在上一章的实验基础上&#xff0c;添加一个按键和一个LED&#xff1b; 2、使用中断的方式实现以下两个功能&#xff1a; &#xff08;1&#xff09;KEY1按键…

计算机图形学入门16:曲线

1.曲线 曲线&#xff08;Curves&#xff09;在图形学中应用非常广泛&#xff0c;比如&#xff1a;相机的拍摄路径、物体的移动路径、动画曲线、矢量字体等。如下图所示&#xff0c;是使用曲线到矢量字体的应用&#xff0c;通过移动一些控制点来改变字体。 2.贝塞尔曲线 2.1 贝…

[Vulnhub]Wintermute LFI+SMTP+Screen+Structv2-RCE+Lxc逃逸

概要 靶机 192.168.8.104 信息收集 $ nmap 192.168.8.103 --min-rate 1000 -sC -sV 结果: Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-15 05:54 EDT Nmap scan report for 192.168.8.103 (192.168.8.103) Host is up (0.035s latency). Not shown: 997 closed t…

《软件定义安全》之七:SDN安全案例

第7章 SDN安全案例 1.DDoS缓解 1.1 Radware DefenseFlow/Defense4All Radware在开源的SDN控制器平台OpenDaylight&#xff08;ODL&#xff09;上集成了一套抗DDoS的模块和应用&#xff0c;称为Defense4ALL。其架构如下图&#xff0c;主要有两部分&#xff1a;控制器中的安全…

web安全渗透测试十大常规项(一):web渗透测试之XML和XXE外部实体注入

#详细点: XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。等同于JSON传输。XXE漏洞XML External Entity Injection,即xml外部实体注入漏洞,XXE漏洞发…

windows10安装paraview

下载软件&#xff1a; https://www.paraview.org/download/ 下载如下版本即可&#xff1a;

跟《经济学人》学英文:2024年6月15日这期 Chinese electric vehicles (EVs)

The EU hits China’s carmakers with hefty new tariffs Duties will only hold them back for a while 欧盟对中国汽车制造商征收高额新关税 hit: 对xxx施加 在句子"The EU hits China’s carmakers with hefty new tariffs"中&#xff0c;“hits”的意思是“对…

北京银行品牌价值提升160亿元首破千亿 位居《中国500最具价值品牌》榜第85位!

6月19日&#xff0c;由世界品牌实验室(World Brand Lab)主办的第二十一届“世界品牌大会”在北京举行&#xff0c;活动现场发布了2024年《中国500最具价值品牌》榜单。在这份基于财务数据、品牌强度和消费者行为分析的年度报告中&#xff0c;北京银行最新品牌价值达1036.62亿元…

Graph RAG 的力量:智能搜索的未来

随着世界越来越依赖数据&#xff0c;对准确、高效的搜索技术的需求从未如此高涨。传统搜索引擎虽然功能强大&#xff0c;但往往难以满足用户复杂而细微的需求&#xff0c;尤其是在处理长尾查询或专业领域时。Graph RAG&#xff08;检索增强生成&#xff09;正是在这种情况下应运…

定制汽车霍尔传感器

磁电效应霍尔传感器、饱和霍尔传感器、非线性霍尔传感器 霍尔传感器原理 霍尔传感器的工作原理基于霍尔效应&#xff0c;即当一块通有电流的金属或半导体薄片垂直地放在磁场中时&#xff0c;薄片的两端会产生电位差。这种现象称为霍尔效应&#xff0c;两端具有的电位差值称为…

排序算法及源代码

堆排序&#xff1a; 在学习堆之后我们知道了大堆和小堆&#xff0c;对于大堆而言第一个节点就是对大值&#xff0c;对于小堆而言&#xff0c;第一个值就是最小的值。如果我们把第一个值与最后一个值交换再对最后一个值前面的数据重新建堆&#xff0c;如此下去就可以实现建堆排…

Android Kotlin 中的闭包函数

闭包函数是现代编程语言中一个重要的概念&#xff0c;Kotlin 作为一种现代的 JVM 语言&#xff0c;自然也支持闭包函数。本文将详细介绍闭包函数的概念、在Kotlin 中的使用方法&#xff0c;以及一些常见的应用场景。 什么是闭包函数&#xff1f; 闭包函数&#xff0c;也称为闭…

MySQL版本发布模型

MySQL 8.0 之后使用了新的版本控制和发布模型&#xff0c;分为两个主线&#xff1a;长期支持版&#xff08;LTS&#xff09;以及创新版。这两种版本都包含了缺陷修复和安全修复&#xff0c;都可以用于生产环境。 下图是 MySQL 的版本发布计划&#xff1a; 长期支持版 MySQL…

百元内平价蓝牙耳机推荐,四款高热度平价耳机推荐!

在追求高品质音乐体验的同时&#xff0c;我们也不得不考虑预算的限制&#xff0c;不过市面上有不少百元内平价蓝牙耳机&#xff0c;它们在保证音质和舒适度的同时&#xff0c;也兼顾了价格的亲民性&#xff0c;身蓝牙耳机测评的达人&#xff0c;经手过不少的百元蓝牙耳机&#…

考研数学强化,880+660正确打开方式

1800题基础做完了&#xff1f;做的怎么样&#xff01; 之所以问你做的怎么样&#xff0c;是因为1800题做的好坏&#xff0c;直接决定了你要不要开始做880题和660题。 有的同学1800题做的很好&#xff0c;做完1800题之后开始做880660没毛病 但是有的同学就是纯纯的为了做题而…