当前位置: 代码网 > it编程>编程语言>Java > mybatis 新增返回id的实现

mybatis 新增返回id的实现

2024年09月23日 Java 我要评论
前言插入一条数据并返回id的场景很常见,mybatis的要麻烦一点,mybatis-plus可能之前api插入再getid()就行了,这里说一下mybatis的两个方式。一、第一种方式在实体类的映射文

前言

插入一条数据并返回id的场景很常见,mybatis的要麻烦一点,mybatis-plus可能之前api插入再getid()就行了,这里说一下mybatis的两个方式。

一、第一种方式

在实体类的映射文件 “*mapper.xml” 这样写:

<insert id="insertandgetid" usegeneratedkeys="true" keyproperty="userid" parametertype="com.xxx.mybatis.user">
    insert into user(username,password,comment)
    values(#{username},#{password},#{comment})
</insert>

小tips:

  • usegeneratedkeys=“true” 表示给主键设置自增长
  • keyproperty=“userid” 表示将自增长后的id赋值给实体类中的userid字段。
  • parametertype=“com.xxx.mybatis.user” 这个属性指向传递的参数实体类
  • id=“insertandgetid” 这个不是固定叫这个的,你可以根据自己的来

这里提醒下,insert标签中没有resulttype属性,不要乱加。

实体类中uerid 要有getter() and setter(); 方法
我在mysql数据库中建表时候已经设置了字段自增长,

二、第二种方式

1.引入库

代码如下(示例):

<!-- 插入一个商品 -->
<insert id="insertproduct" parametertype="domain.model.productbean" >
    <selectkey resulttype="java.lang.long" order="after" keyproperty="productid">
        select last_insert_id()
    </selectkey>
        insert into t_product(productname,productdesrcible,merchantid)values(#{productname},#{productdesrcible},#{merchantid});
</insert>

小tips:

< insert >标签中没有resulttype属性,但是< selectkey >标签是有的。
order=“after” 表示先执行插入语句,之后再执行查询语句。

可被设置为 before 或 after。

如果设置为 before,那么它会首先选择主键,设置 keyproperty 然后执行插入语句。

如果设置为 after,那么先执行插入语句,然后是 selectkey 元素-这和如 oracle 数据库相似,可以在插入语句中嵌入序列调用
keyproperty=“userid” 表示将自增长后的id赋值给实体类中的userid字段。

select last_insert_id() 表示mysql语法中查询出刚刚插入的记录自增长id.

实体类中uerid 要有getter() and setter(); 方法

到此这篇关于mybatis 新增返回id的实现的文章就介绍到这了,更多相关mybatis 新增返回id内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com