java insert语句_mybatis的insert语句插入数据时的返回值的实现

本文介绍如何在MyBatis中使用SQL语句插入数据并返回刚插入记录的主键值。通过在插入语句后添加SELECT@@IDENTITYASID,可以获取到自增主键的值。

mybatis的sql语句一般是配置在配置文件中,现先给出一个例子,

sqlMap.xml文件中的一条插入语句:

insert into A(a, b, c, d)

VALUE

(#a#, #b#, #c#, #d#)

以上的代码片段只是最简单的插入语句,上面这条SQL语句无论执行结果是成功还是失败,它的返回值都是null

如果想要在执行插入之后得到某个非null的返回值,上面那条sql语句需要再加点‘料':

insert into A(a, b, c, d)

VALUE

(#a#, #b#, #c#, #d#)

SELECT @@IDENTITY AS ID

这样写的话当插入一条数据的时候,该插入操作的返回值就是刚刚插入的 那条记录的主键值。

到此这篇关于mybatis的insert语句插入数据时的返回值的实现的文章就介绍到这了,更多相关mybatis insert返回值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

### MyBatis Mapper 接口 Insert 操作返回值的意义及用法 #### 插入操作的默认行为 当使用 MyBatis 执行 `insert` 操作,默认情况下 SQL 语句不会自动返回插入记录的主键,而是返回受影响的行数。这意味着如果没有特别配置,调用者仅能得知有多少条数据被成功插入[^1]。 ```java int insertCount = articleLikesMapper.insert(articleLikesEntity); // insertCount 表示此次插入影响了多少行 ``` #### 使用自动生成的主键 为了能够获取到由数据库生成的主键,在映射文件中的 `<insert>` 标签内需设置属性 `useGeneratedKeys="true"` 和指定 `keyProperty` 属性指向实体类中对应的字段名称。这样做可以使得 MyBatis数据库分配的新 ID 值填充回传给 Java 对象实例,并且该对象也会作为方法的结果返回[^2]。 ```xml <insert id="insert" keyProperty="likeId" useGeneratedKeys="true"> INSERT INTO article_likes(user_id, article_id) VALUES (#{userId}, #{articleId}) </insert> ``` ```java ArticleLikesEntity insertedRecord = articleLikesService.insert(new ArticleLikesEntity()); // insertedRecord.getLikeId() 可获得刚刚插入记录所拥有的唯一标识符 ``` #### 处理布尔类型返回值 对于某些场景下可能希望得到更简单的反馈——即是否至少有一行受到影响,则可以在 DAO 或 Service 方法层面处理这个逻辑。通过判断返回的影响行数大于零来决定最终返回 true 还是 false[^3]。 ```java public boolean addNewLike(ArticleLikesEntity entity){ return articleLikesMapper.insert(entity) > 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值