Mapper<T>, MySqlMapper<T>,MyInsertListMapper<T>这三个接口中是否存在存入数据并返回id 的方法
时间: 2023-12-16 22:04:03 浏览: 56
mapper接口注入两种方式详解
在这三个接口中,都没有提供存入数据并返回id的方法。这三个接口的作用分别是:
- Mapper<T>:提供了一些基本的CRUD操作方法,如`selectByPrimaryKey`、`insert`、`updateByPrimaryKey`等。
- MySqlMapper<T>:提供了一些MySQL特有的操作方法,如`replace`、`insertSelective`等。
- MyInsertListMapper<T>:提供了批量插入数据的方法。
如果需要实现存入数据并返回id的方法,可以在自定义Mapper接口中添加一个方法,使用Mybatis的`<selectKey>`标签来实现。例如:
```
public interface AdvertMapper extends MyBaseMapper<Advert> {
@Insert("insert into advert(title, content) values (#{title}, #{content})")
@SelectKey(statement = "select last_insert_id()", keyProperty = "id", before = false, resultType = int.class)
int insertAndGetId(Advert advert);
}
```
这个方法会将`Advert`对象插入到数据库中,并将自动生成的id赋值给`Advert`对象的id字段,同时返回自动生成的id。注意,`@SelectKey`注解中的`statement`属性的值是获取自增主键的SQL语句,这里使用了MySQL的`last_insert_id()`函数。
阅读全文