返回顶部
首页 > 资讯 > 精选 >mybatis中selectKey有什么用
  • 269
分享到

mybatis中selectKey有什么用

2023-06-29 00:06:19 269人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关mybatis中selecTKEy有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mybatis的selectKey作用当我们使用id自增操作Mybatis时,需要返回最新插入的i

这篇文章给大家分享的是有关mybatis中selecTKEy有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

mybatis的selectKey作用

当我们使用id自增操作Mybatis时,需要返回最新插入的id的话,可以进行如下操作:

<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">SELECT LAST_INSERT_ID() AS ID </selectKey>

在insert中添加即可:

<insert id="insert" parameterType="com.pinyouGou.pojo.TbGoods" >    <selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">      SELECT LAST_INSERT_ID() AS id    </selectKey>    insert into tb_goods (id, seller_id, goods_name,      default_item_id, audit_status, is_marketable,       brand_id, caption, category1_id,       category2_id, category3_id, small_pic,       price, type_template_id, is_enable_spec,       is_delete)    values (#{id,jdbcType=BIGINT}, #{sellerId,jdbcType=VARCHAR}, #{goodsName,jdbcType=VARCHAR},       #{defaultItemId,jdbcType=BIGINT}, #{auditStatus,jdbcType=VARCHAR}, #{isMarketable,jdbcType=VARCHAR},       #{brandId,jdbcType=BIGINT}, #{caption,jdbcType=VARCHAR}, #{category1Id,jdbcType=BIGINT},       #{category2Id,jdbcType=BIGINT}, #{category3Id,jdbcType=BIGINT}, #{smallPic,jdbcType=VARCHAR},       #{price,jdbcType=DECIMAL}, #{typeTemplateId,jdbcType=BIGINT}, #{isEnableSpec,jdbcType=VARCHAR},       #{isDelete,jdbcType=VARCHAR})  </insert>

然后操作int newId = goodsMapper.insert(goods.getGoods()); 就能拿到最新加入的ID信息了 

mybatis selectKey 失效问题踩坑

  • selectKey 会将 SELECT LAST_INSERT_ID()的结果放入到传入的实体类的主键里面,

  • keyProperty对应的实体类中的主键的属性名,这里是 实体类中的id,因为它跟数据库的主键对应order

  • AFTER 表示 SELECT LAST_INSERT_ID() 在insert执行之后执行,多用与自增主键,

  • BEFORE 表示 SELECTLAST_INSERT_ID() 在insert执行之前执行,这样的话就拿不到主键了,这种适合那种主键不是自增的类型

resultType 主键类型

<insert id="insertCheckGroup"  parameterType="com.zyl.pojo.CheckGroup">        <selectKey resultType="int" keyProperty="id" order="AFTER">            SELECT LAST_INSERT_ID()        </selectKey>        insert into check_group (name) value (#{name});</insert>

当使用了selectkey时 Dao接口请勿使用@Param 映射注解,会导致selectKey标签失效

int insertCheckGroup(CheckGroup checkGroup);

如果传多个参数需使用@Param时

int insertCheckGroup(@Param("test") CheckGroup checkGroup);

xml标签keyProperty对应主键名称时应加上test.

<insert id="insertCheckGroup"  parameterType="com.zyl.pojo.CheckGroup">        <selectKey resultType="int" keyProperty="test.id" order="AFTER">            SELECT LAST_INSERT_ID()        </selectKey>        insert into check_group (name) value (#{name});</insert>

感谢各位的阅读!关于“mybatis中selectKey有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: mybatis中selectKey有什么用

本文链接: https://lsjlt.com/news/321360.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mybatis中selectKey有什么用
    这篇文章给大家分享的是有关mybatis中selectKey有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mybatis的selectKey作用当我们使用id自增操作Mybatis时,需要返回最新插入的i...
    99+
    2023-06-29
  • mybatis selectkey的用法是什么
    在MyBatis中,`selectKey`是一种用于在插入数据时获取自动生成的主键值的特殊语句。它可以用于动态生成主键并将其赋值给对...
    99+
    2023-09-29
    mybatis
  • Mybatis @SelectKey用法解读
    目录Mybatis @SelectKey用法用处用法属性注意Mybatis selectKey 采坑笔记1.现象描述2.问题排查3. selectKey 用法再认识4.selectK...
    99+
    2024-04-02
  • mybatis的selectKey作用详解
    目录mybatis的selectKey作用mybatis selectKey 失效问题踩坑mybatis的selectKey作用 当我们使用id自增操作Mybatis时,需要返回最新...
    99+
    2024-04-02
  • MyBatis如何使用selectKey返回主键的值
    目录使用selectKey返回主键的值对于MySQL数据库通过selectkey返回insert或update后的值@selectKey使用方案1方案2使用selectKey返回主键...
    99+
    2024-04-02
  • Mybatis中PageHelper有什么用
    这篇文章主要介绍了Mybatis中PageHelper有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PageHelper是一款好用的开源免费的Mybatis第三方物理...
    99+
    2023-06-16
  • Mybatis selectKey如何返回新增用户的id值
    目录Mybatis selectKey返回新增用户的id值一、需求:新增用户后,同时还要返回当前新增用户的id值二、为什么要使用selectKey?三、属性解析Mybatis sel...
    99+
    2024-04-02
  • Mybatis有什么用
    这篇文章将为大家详细讲解有关Mybatis有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。简介MyBatis的前身叫iBatis,本是apache的一个开源项目, ...
    99+
    2024-04-02
  • MyBatis中SqlSessionFactory和SqlSession有什么用
    SqlSessionFactory是MyBatis的核心接口之一,用于创建SqlSession对象。SqlSessionFactor...
    99+
    2024-03-07
    MyBatis
  • Fluent Mybatis有什么用
    这篇文章主要介绍Fluent Mybatis有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、啥是Fluent-Mybatis与Mybatis-Plus类似,是对Mybaits进一步的封装,使之语法简洁明了,...
    99+
    2023-06-20
  • MyBatis Plus有什么用
    小编给大家分享一下MyBatis Plus有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MyBatis Plus 是国内人员开发的 MyBatis 增强工...
    99+
    2023-06-02
  • Mybatis有什么作用
    这篇文章主要为大家展示了“Mybatis有什么作用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mybatis有什么作用”这篇文章吧。Mybatis 是一个实现了数据持久化的 ORM 框架,简单...
    99+
    2023-06-02
  • Mybatis中万能的Map有什么用
    这篇文章主要介绍Mybatis中万能的Map有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!万能的Map假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们需要考虑使用Map简单来说,map你用什么参数...
    99+
    2023-06-25
  • mybatis中的trim标签有什么用
    MyBatis中的trim标签用于在SQL语句的开头和结尾去除多余的空格,并可以在SQL语句的开头和结尾添加自定义的字符串。trim标签有以下几种使用方式:1. prefixOverrides:指定要删除的前缀字符串,只有当SQL语句以...
    99+
    2023-08-09
    mybatis trim
  • mybatis 获取更新(update)记录的id之<selectKey>用法说明
    目录获取更新(update)记录的id之<selectKey>问题简介解决 获取update 纪录的id详解<selectKey>标签的含义获取更新...
    99+
    2024-04-02
  • MyBatis中的#{}和${}有什么区别
    这篇文章主要介绍了MyBatis中的#{}和${}有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言在MyBatis 的映射配置文件中,动态传递参数有两种方式:#{...
    99+
    2023-06-21
  • MyBatis中的LogFactory和Log接口有什么用
    在MyBatis中,LogFactory是用于创建Log实例的工厂类,而Log接口则是用于记录日志信息的接口。LogFactory负...
    99+
    2024-03-08
    MyBatis
  • mybatis命名空间有什么用
    MyBatis命名空间的作用是用来标识和管理Mapper接口或Mapper XML文件中定义的SQL语句。通过使用命名空间,可以将不...
    99+
    2023-08-18
    mybatis
  • Eclipse的插件MyBatis Editor有什么用
    这篇文章将为大家详细讲解有关Eclipse的插件MyBatis Editor有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MyBatis Editor是一个Eclipse的插件,用来编辑MyBat...
    99+
    2023-06-17
  • MyBatis中的sqlSessionFactory和sqlSession有什么区别
    在MyBatis中,sqlSessionFactory和sqlSession是两个重要的对象,它们分别有不同的作用和功能。 sq...
    99+
    2024-04-09
    MyBatis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作