mapper insert语句返回值
时间: 2025-02-20 22:15:05 浏览: 46
### 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;
}
```
阅读全文
相关推荐


















