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"/>

就可以在下面看到日志

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

failed to create network xxxx: Error response from daemon

问题描述&#xff1a; 启动项目时&#xff0c;docker内部网络冲突。 解决方案&#xff1a; 1.删除所有docker容器&#xff08;强制删除一个或多个容器&#xff0c;即使它们正在运行&#xff09; docker rm -f $(docker ps -aq) 2.验证docker容器是否删除成功 docker ps --…

RK3588 Android12音频驱动分析全网最全

最近没有搞音频相关的了&#xff0c;在搞BMS, 把之前的经验总结一下。 一、先看一下Android 12音频总架构 从这张图可以看到音频数据流一共经过了3个用户空间层的进程&#xff0c;然后才流到kernel驱动层。Android版本越高&#xff0c;通用性越高&#xff0c;耦合性越低&#…

Bug:SSH Failed Permission Denied(完美解决)

Bug&#xff1a;SSH Failed Permission Denied&#xff08;完美解决&#xff09; 今天我本机mac通过ssh访问linux服务器时报错&#xff1a;SSH Failed Permission Denied 思路&#xff1a; linux服务器sshd是否开启linux /etc/ssh/sshd_config配置是否正确&#xff08;是否开启…

【INTEL(ALTERA)】为什么在使用 .ipx 时,nios2-bsp 无法查找 .sopcinfo 文件?

目录 说明 解决方法 说明 由于 Quartus Prime Pro 软件版本 17.0 出现问题&#xff0c;使用 .ipx 文件创建多个自定义组件时&#xff0c;.sopcinfo 文件在qsys_name文件夹中生成&#xff0c;而不是在项目目录文件夹中生成。 当您在Nios II软件构建工具 中构建Nios II应用程…

使用@Value注解无法成功获取配置文件内容,常见原因

在日常的java开发中&#xff0c;我们经常会遇到一些需要将信息写在配置文件的要求&#xff0c;比如文件的输出目录&#xff0c;输入目录的。当在配置文件中写入对应的目录配置时&#xff0c;那么怎么读取配置文件的内容就需要我们去了解了。 在java中一般使用Value这个注解去读…

「Python-docx 专栏」docx设置页脚、页码、页码对齐方式

本文目录 前言一、docx设置页脚1、完整代码2、实际效果图3、常见问题①、对齐方式讲解②、字体号与Pt的对应关系二、docx设置页码(阿拉伯数字)1、完整代码2、实际效果图三、docx调整页码字体、对齐方式1、完整代码2、实际效果图3、常见问题①、对齐方式讲解②、字体号与Pt的对…

系统架构设计师【论文-2022年 试题1】: 论基于构件的软件开发方法及其应用(包括解题思路和经典范文)

真题题目&#xff08;2022年 试题1&#xff09; 题目: 论基于构件的软件开发方法及其应用 基于构作的软件开发(Component-Based Software Development&#xff0c;CBSD)是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。基于构件的软件系统中的构…

mysql报错:You can‘t specify target table ‘Person‘ for update in FROM clause

背景 在做leetcode里数据库的196题删除重复数据时&#xff0c;我参考评论区大佬的方法先用group by找到每个分组里的最小的id的那条记录&#xff0c;然后删掉原表中id不在其中的记录&#xff0c;然后就报了如题所示的错误。 我的写法如下&#xff1a; DELETE FROMPerson WHER…

腾讯《地下城与勇士:起源》手游在部分安卓平台停止更新

原标题&#xff1a;因合约到期 《DNF手游》停止安卓平台更新 易采游戏网6月19日消息&#xff1a;《地下城与勇士&#xff1a;起源》(简称DNF手游)官方今天公告&#xff0c;因合作协议到期&#xff0c;自6月20日起&#xff0c;该游戏将不再在某些安卓应用商店提供。腾讯公司已经…

Stable Diffusion【光影文字】:绚丽光影,文字与城市夜景的光影之约

今天我们我们结合城市夜景背景来看一下光影文字的效果&#xff0c;我们先来看一下效果图。 一. 字融城市夜景制作光影文字方法 【第一步】&#xff1a;制作底图这里制作底图使用黑底白字。我们使用美图秀秀制作一个"小梁子"字的底图。 字体&#xff1a;默认字体 图…

XTR115的一些感悟

今天花了些时间看了下XTR115的资料&#xff0c;虽然之前经常用&#xff0c;但是电路里面的细节一直没有去深究。1、XTR115的最大电流是32mA.当环路电流接近32 mA时能自动限流&#xff0c;这个在手册里有的。我在想XTR115坏了是什么情况。以前遇到过好多个XTR115损坏的情况&…

vue router中的导航守卫,它的5个使用场景举例

Vue Router 中的导航守卫主要用于监视路由的变化&#xff0c;它提供了一些钩子函数&#xff0c;允许我们在路由进入、离开或改变时执行一些逻辑。 导航守卫的主要作用包括&#xff1a; 权限控制&#xff1a;我们可以在导航守卫中检查用户的登录状态或权限&#xff0c;根据结果…

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

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

SK投屏助手:电脑控制手机,游戏与App轻松畅玩

SK投屏助手让您将手机画面完美投射至电脑屏幕&#xff0c;而且不止于此&#xff01;现在&#xff0c;您可以利用电脑反向控制手机&#xff0c;轻松操作各种游戏和应用程序。无论是在家中放松还是在工作中提高效率&#xff0c;SK投屏助手都能成为您的得力助手。立即体验无缝连接…

【第20章】Vue实战篇之Vue Router(路由)

文章目录 前言一、使用Vue-Router1.安装2. 创建路由器实例3. 注册路由器插件4. 根组件 二、访问路由器1.理论2.使用3. 展示 三、嵌套路由(子路由)1. 准备文件2. 配置路由3. 菜单配置4. 展示 总结 前言 Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成&#xff0c;…

银行数仓项目实战(四)--了解银行业务(存款)

文章目录 项目准备存款活期定期整存整取零存整取存本取息教育储蓄定活两便通知存款 对公存款对公账户协议存款 利率 项目准备 &#xff08;贴源层不必写到项目文档&#xff0c;因为没啥操作没啥技术&#xff0c;只是数据。&#xff09; 可以看到&#xff0c;银行的贴源层并不紧…

Python数据分析工程师的技术栈

第一部分&#xff1a;Python数据分析工程师的技术栈 引言 Python数据分析工程师是数据科学领域的重要组成部分&#xff0c;他们利用Python的丰富库和工具来处理、分析和解释数据。在本文的第一部分&#xff0c;我们将详细介绍Python数据分析工程师的技术栈&#xff0c;包括数…

【linux】内核从tcp层调用IP层摸索中

合入代码&#xff1a; 登录 - Gitee.com 这是运行日志&#xff1a; https://gitee.com/r77683962/linux-6.9.0/raw/master/test_log/kern_tcp_ip.log 日志截取部分&#xff08;也不知道对不对&#xff0c;凭感觉走。。。。&#xff09;

【ARMv8/ARMv9 硬件加速系列 3.2 -- SVE 读写内存指令 st1b | st1w | st1w | st1d 使用介绍】

文章目录 SVE Load 和 Store 指令使用介绍LD1 加载指令ST1 存储指令PFR 预取指令参考示例LD1 加载示例ST1 存储示例代码实例SVE Load 和 Store 指令使用介绍 ARMv9架构中的SVE(Scalable Vector Extension)指令集为向量计算提供了强大支持,特别是针对不同数据类型和访问模式…