框架——MyBatis的参数传递,基本的增删改

news2024/11/18 14:45:42

MyBatis环境搭建步骤(超全解析!!!):

http://t.csdnimg.cn/VDMjDicon-default.png?t=N7T8http://t.csdnimg.cn/VDMjD

1.参数传递

在AdminDao类中写下面两个方法

单个参数直接传递 :

//根据id查询管理员对象

Admin findAdminById(int id);

  单个参数SQL语句举例:

在AdminMapper.xml文件中写相应的SQL语句

 <!--使用别名即可-->
    <select id="findAdminById" parameterType="int" resultType="Admin">
            select * from admin where id = #{id}
    </select>

其中parameterType="int"是传入参数类型 ,resultType="Admin"是返回值类型

多个参数使用@Param(“id”)绑定:

//登录
Admin login(@Param("acc")String account,@Param("pwd") String password);

 多个参数SQL语句举例:

<select id="selectAdmins" resultType="Admin">
   select id, account, password from admin where account= #{account} and password=# 
   {password}
</select>  

其中resultType代表返回值类型,多个参数时不用写传入参数类型

如果传入一个复杂的对象,就需要使用 parameterType 参数进行类型定义:

//保存管理员账户
void saveAdmin(Admin admin);

<insert id="saveAdmin" parameterType="Admin">
     insert into admin(account,password)values(#{account},#{password}) 
</insert>

2.增删改

①新增

在AdminDao类中写该方法

//保存管理员账户
void saveAdmin(Admin admin);

 在AdminMapper.xml文件中写相应的SQL语句 

<insert id="saveAdmin" parameterType="Admin">
     insert into admin(account,password)values(#{account},#{password}) 
</insert>

 在测试类的main方法中调用该方法,传入想要新增的管理员的信息


如果想要在新增完的同时拿到刚新增的admin的主键id,可以这样做

  <insert id="saveAdmin" parameterType="Admin" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
            insert into admin(account,password)values(#{account},#{password})
  </insert>

②删除

在AdminDao类中写该方法

//删除管理员
void deleteadmin(int id);

在AdminMapper.xml文件中写相应的SQL语句 

<delete id="deleteadmin" parameterType="int">
        delete from admin where id = #{id}
</delete>

在测试类的main方法中调用该方法,传入想要删除的管理员的id 

 ③修改

在AdminDao类中写该方法

//修改管理员信息
void updateadmin(Admin admin);

在AdminMapper.xml文件中写相应的SQL语句 

<update id="updateadmin" parameterType="Admin">
     update admin set account=#{account},password=#{password},gender=#{gender} where id=#{id}
</update>

在测试类的main方法中调用该方法,传入想要修改的管理员的信息

3.#{} 和${}区别

#{} 占位符,是经过预编译的,编译好 SQL 语句再取值,#方式能够防止 sql 注入
#{}:delete from admin where id=#{id}
结果: delete from admin where id = ?
${}会将将值以字符串形式拼接到 sql 语句, ${ }方式无法防止 Sql 注入
${}: delete from admin where id=’${id}’
结果: delete from admin where id=’1’
一般是#{ } 向 sql 传值使用, 而使用${ }向 sql 传列名 , 例如在 order by $ {column} 语句后面可以动态替换列名

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

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

相关文章

C语言:函数详解(2)

目录 一、数组做函数参数 二、嵌套调用和链式访问 2.1 嵌套调用 2.2 链式访问 三、函数的声明和定义 3.1 单个文件 3.2 多个文件 一、数组做函数参数 在使用函数解决问题的时候&#xff0c;难免会将数组作为参数传递给函数&#xff0c;在函数内部对数组进行操作。 比如…

推荐大模型书籍|《扩散模型从原理到实战》

就在几年前&#xff0c;“通用人工智能”(Artificial General Inte11igence&#xff0c;AGI)似乎还是一个只存在于科幻小说中的概念&#xff0c;在现实中的实现方法仍在探索中。然而到了2022年&#xff0c;基于大语言模型的AIGC(AI Generated Content)领域的快速发展&#xff0…

List<对象>转JSON字符串以及JSON字符串转List<对象>

签名&#xff1a;但行好事&#xff0c;莫问前程。 文章目录 前言一、工作需求二、List<对象>转JSON字符串三、JSON字符串转List<对象>总结 前言 记录一下List<对象>转JSON字符串以及JSON字符串转List<对象> 一、工作需求 产品需求中有一个需求要求页…

最少钱学习并构建大模型ollama-llama3 8B

学习大模型时可能面临一些困难&#xff0c;这些困难可能包括&#xff1a; 计算资源限制&#xff1a;训练大模型通常需要大量的计算资源&#xff0c;包括CPU、GPU等。如果设备资源有限&#xff0c;可能会导致训练时间长、效率低下或无法完成训练。 内存限制&#xff1a;大模型通…

卫星图揭秘《黑神话:悟空》山西取景地

8月20日&#xff0c;国产单机游戏巨制《黑神话&#xff1a;悟空》在全球同步解锁&#xff0c;游戏以《西游记》为背景&#xff0c;并以其精美的画面和深刻的剧情吸引了全球玩家&#xff0c;被誉为“国产游戏之光”。 游戏画面在国内36处实地取景&#xff0c;其中有27个来自山西…

日志审计Graylog 使用教程-kafka收取消息

Graylog 是一个开源的日志管理和分析平台。它主要用于收集、存储、处理和分析大量的日志数据。Graylog 的核心功能包括&#xff1a; 日志收集&#xff1a;Graylog 可以从各种来源&#xff08;如服务器、网络设备、应用程序等&#xff09;收集日志数据。它支持多种输入方式&…

122-域信息收集应用网络凭据CS插件AdfindBloodHound

参考&#xff1a;【内网安全】域信息收集&应用网络凭据&CS插件&Adfind&BloodHound_ladon adfinder bloodhound-CSDN博客 工作组和域环境 我的理解&#xff1a; 工作组就是还是局域网一样只是大一点里面的电脑很多&#xff0c;每个电脑还是都是单独的电脑没有…

萤石C++ SDK Demo播放4G摄像头

萤石开放平台官方提供的Demo是有问题的&#xff0c;无法直接使用。提交工单后&#xff0c;技术人员回复要修改配置文件才能使用。 1. 下载SDK 2.修改配置文件EZPCOpenSDK_v5.1.18_build20230808\demo\win32\EzvizQtDemo.ini 3.运行EzvizQtDemo1.exe 点击左上角【登录】按钮&am…

黑神话悟空,高清壁纸、原画,游戏截图

黑神话悟空&#xff0c;高清壁纸、原画&#xff0c;游戏截图&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/cd17c05c4f33

安卓工控主板在轨道交通中的应用特点

安卓工控主板在轨道交通中的应用特点主要体现在以下几个方面&#xff1a; 一、高效的数据处理与通信能力 强大的处理能力&#xff1a;安卓工控主板通常搭载高性能的处理器&#xff0c;如某些型号可能搭载飞腾D2000八核CPU等&#xff0c;这些处理器能够高效处理轨道交通系统中…

C语言学习——用指针处理链表

目录 11.7用指针处理链表 链表概述 简单链表 处理动态链表所需的函数 malloc函数 calloc函数 free函数 建立动态链表 输出链表 对链表的删除操作 对链表的插入操作 对链表的综合操作 11.7用指针处理链表 链表概述 链表是一种常见的数据结构。它是动态地进行存储分…

【架构设计】-- aarch(ARM) and X86

1、aarch(ARM) 架构 &#xff08;1&#xff09;操作系统支持&#xff1a;早期为 32 位操作系统&#xff0c;目前大部分都是 64 位操作系统 &#xff08;2&#xff09;全称&#xff1a;Advanced RISC Machine&#xff0c;由英国ARM Holdings plc公司开发 这种架构主要⽤于智能…

chatglm3-6b下载时,需要下载哪些文件

在huggingface或modelscope上下载chatglm3-6b时&#xff0c;会发现有两种可执行文件&#xff0c;一种是.bin&#xff0c;一种是.safetensors&#xff0c;在使用的时候你如果直接用git命令git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git直接下载&#xff0c;你会…

【中仕公考怎么样】事业编ABCDE类对应的专业

事业编考试分为ABCDE五个类别&#xff0c;对应的专业分别是&#xff1a; 综合应用能力(A类)&#xff1a; 招聘专业&#xff1a;汉语言与文秘类、法律类、新闻传播类、治安学、治安管理、社会工作、老年服务、青少年服务、思想政治教育、安全工程、公共事业管理、行政管理、人力…

前端打字效果

页面效果链接&#xff0c;点击查看https://live.csdn.net/v/419208?spm1001.2014.3001.5501 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, …

图像处理之:Video Processing Subsystem(一)

免责声明&#xff1a; 本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下&#xff0c;作者不对因使用本文内容而导致的任何直接或间接损失承担责任&#xff0c;包括但不限于数据丢失、业务中断或其他经济…

deque容器的所有操作

1.deque原理 2.deque构造函数 只读迭代器这么写&#xff1a; 3.deque赋值操作 4.deque大小操作 5.deque插入和删除操作 6.deque数据存取 7.deque排序

Linux阿里云服务器,利用docker安装EMQX

第一步&#xff0c;给云服务器docker进行加速 阿里云搜索“镜像加速器”&#xff0c;找到下面这个菜单&#xff0c;点进去 然后找到镜像工具下的镜像加速器 把这个加速器地址复制 然后在自己的云服务器中&#xff0c;找到docker的文件夹 点击json配置文件 把地址修改为刚刚…

边坡监测预警摄像机

边坡是指山体或河岸等地表的斜坡部分&#xff0c;由于受到地质构造、气候变化等因素的影响&#xff0c;边坡可能存在塌方、滑坡等危险情况。为了及时监测和预警边坡的变化情况&#xff0c;可以使用边坡监测预警摄像机 。 边坡监测预警摄像机是一种结合了摄像技术和智能算法的设…

算法的学习笔记---按之字形顺序打印二叉树

&#x1f600;前言 在算法的学习中&#xff0c;二叉树是一种非常基础但又十分重要的数据结构。今天&#xff0c;我们将讨论一种特殊的二叉树遍历方法&#xff1a;之字形顺序打印。这个方法要求我们以“之”字形的顺序遍历并打印二叉树的节点值&#xff0c;也就是第一行从左到右…