首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我使用"DELETE FROM table where id = #{id}“语句时,Mybatis在哪里可以获得#{id}?

在Mybatis中,可以通过使用参数映射来获取#{id}的值。具体来说,#{id}是一个占位符,它会被实际的参数值替换。在执行SQL语句之前,Mybatis会将#{id}替换为实际的参数值。

Mybatis提供了多种方式来获取参数值,这取决于你的配置和使用方式。以下是几种常见的获取参数值的方式:

  1. 使用基本类型参数:如果你的参数是基本类型(如int、String等),Mybatis会直接使用参数值。
  2. 使用Map参数:如果你的参数是一个Map,你可以通过键值对的方式来获取参数值。在这种情况下,#{id}中的id应该是Map中的一个键。
  3. 使用对象参数:如果你的参数是一个Java对象,Mybatis会使用对象的属性来获取参数值。在这种情况下,#{id}中的id应该是对象的一个属性。
  4. 使用注解参数:如果你使用了注解来配置SQL语句,你可以通过注解的方式来获取参数值。在这种情况下,#{id}中的id应该与注解中的参数名一致。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Mybatis使用generatedKey插入数据返回自增id始终为1,自增id实际返回到原对象当中的问题排查

今天使用数据库的时候,遇到一个场景,即在插入数据完成后需要返回此数据对应的自增主键id,但是使用Mybatis中的generatedKey且确认各项配置均正确无误的情况下,每次插入成功后,返回的都是...终于凭借着一次Debugg发现的问题,原来使用Mabatis中的insert或者insertSelective方式插入时,如使用int insert(TestGenKey testGenKey),返回值...int表示的是插入操作受影响的行数,而不是指的自增长id,那么返回的自增id到底去哪里了呢?...-- http://www.mybatis.org/generator/configreference/context.html --> <context id="product" targetRuntime...id的表配置generatedKey 依据上述配置生成出来的PO Model如下 package yourpackage.model; import javax.persistence.*; @Table

1.7K10
  • 4、如何利用注解进行 MyBatis 开发

    当方法只接收一个参数,可以不用该注解,如下两种方式等价: @Delete("delete from user where id=#{id}") boolean deleteUser(int id);...@Delete("delete from user where id=#{id}") boolean deleteUser(@Param("id")int id); 当方法接收多个参数,建议使用该注解...假如我们传入数据库表名 test: 对比项目 传参语句 解析后的语句 #{} select * from #{table}; select * from "test"; ${} select * from...#{table}; select * from test; #{} 和 ${} 预编译处理不一样,#{} 类似于 JDBC 中的 PreparedStatement,对于传入的参数,会在预处理阶段用...进行替代,然后真正需要执行语句才带入参数;而 ${} 则会直接进行简单的替换; 对比项目 传参语句 解析后的语句 #{} select * from user where id=#{id}; select

    25950

    用注解实现 MyBatis 开发

    当方法只接收一个参数,可以不用该注解,如下两种方式等价: @Delete("delete from user where id=#{id}") boolean deleteUser(int id);...@Delete("delete from user where id=#{id}") boolean deleteUser(@Param("id")int id); 当方法接收多个参数,建议使用该注解...假如我们传入数据库表名 test: 对比项目 传参语句 解析后的语句 #{} select * from #{table}; select * from "test"; ${} select * from...#{table}; select * from test; #{} 和 ${} 预编译处理不一样,#{} 类似于 JDBC 中的 PreparedStatement,对于传入的参数,会在预处理阶段用...进行替代,然后真正需要执行语句才带入参数;而 ${} 则会直接进行简单的替换; 对比项目 传参语句 解析后的语句 #{} select * from user where id=#{id}; select

    35530

    MyBatis新特性动态SQL真香!

    当我使用MyBatis的时候,需要在mapper.xml中书写大量的SQL语句当我使用MyBatis Generator(MBG)作为代码生成器,也会生成大量的mapper.xml文件。...Dynamic SQL简介 我们使用Spring的时候,有XML和Java两种配置方式。使用SpringBoot,已经推荐使用Java配置,基本不用xml配置了。...这里以按用户名删除后台用户为例,SQL实现如下; DELETE FROM ums_admin WHERE username = 'andy'; 使用Dynamic SQL对应Java中的实现如下...ON uarr.role_id = ur.id WHERE ua.id = 1 然后Dao接口中添加selectWithRoleList方法,这里使用@ResultMap注解引用mapper.xml...} } 总结 当我使用MyBatis官方代码生成器MBG,配置的targetRuntime决定了使用它的使用方式。

    7.9K10

    MyBatis:映射配置文件

    -- 删除功能的标签--> DELETE FROM student...WHERE id = #{id} 2、关于 select 语句属性 select 语句有很多属性: id – 唯一标识 select 语句 parameterType...trim,where 辅助元素 用于处理一些SQL拼装问题 foreach 循环语句 in语句等列举条件常用 bind 辅助元素 拼接参数 1、 标签:条件判断 if 语句使用方法简单,常常与...{ids} foreach 元素的功能非常强大,它允许你指定一个集合,声明可以元素体内使用的集合项(item)和索引(index)变量。...当使用可迭代对象或者数组,index 是当前迭代的序号,item 的值是本次迭代获取到的元素。当使用 Map 对象(或者 Map.Entry 对象的集合),index 是键,item 是值。

    89810

    MySQL操作之数据查询语言:(DQL)(四-2)(多表查询)

    FK_ID错误。应为FK_ID。、 添加数据:从表的外键,只能添加主表主键中存在的数据。 删除数据:需要先删除从表中与主表关联数据,再删除主表中数据。...(不定义ON DELETE 和ON UPDATE子句,这是默认设置,也是最安全的设置) ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (从表外键) REFERENCES...DELETE FROM product WHERE cid =1; DELETE FROM category WHERE id =1; 三、多对多操作 需要有1张中间表进行关联。...五、子查询 5.1 带IN 关键字的子查询 使用IN关键字进行子查询,内层查询返回一个数据列,这个数据列中值将供外层查询语句作为查询条件比较。...= SELECT * FROM department WHERE did = (select did from employee where name='赵四'); 5.6 其它案例 一条select语句结果作为另一条

    27130
    领券