在使用中间表的时候,需要使用该条数据的主键,但是又不想单独再查询依次数据库,可以通过配置返回该条数据的主键
@Insert("INSERT INTO actors VALUES(NULL, #{name}, #{photoGraph})")
int insert(Actor actor);
比如这里,如果想要返回主键数据,返回的int类型数据并不是主键,而是改变的行数,那么返回的主键是在哪呢?
其实返回主键是存放到Actor 对象当中,但是需要一下配置信息
@Insert("INSERT INTO actors VALUES(NULL, #{name}, #{photoGraph})")
@Options(useGeneratedKeys = true, keyColumn = "id", keyProperty = "id")// 返回主键值
int insert(Actor actor);
@Options(useGeneratedKeys = true, keyColumn = “id”, keyProperty = “id”)
其中useGeneratedKeys 设置为true,
keyColumn 对应的就是表当中的主键,映射到Actor对象的ids属性。mybatis会自动填充。
对于非注解式开发
<insert id="createOrder" useGeneratedKeys="true" keyProperty="id">
insert into t_order(serial) values (#{serial})
</insert>