useGeneratedKeys和keyProperty
userGeneratedKeys = “true” 他的出现是告诉别人你可以获取我的主键了
keyProperty = “bookid” 他的出现是告诉你主键bookid
不使用keyProperty的时候:
<insert id="insertBookemm">
insert into book values(null,#{bookname},#{type},#{price})
</insert>
/**
* 添加书籍
* @return
*/
void insertBookemm(Book book);
test里的测试方法
@Test
public void insertemmm(){
SqlSession sqlSession =SqlSessions.getSqlSession();
BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
Book book = new Book(null,"且试天下","武侠",90);
bookMapper.insertBookemm(book);
System.out.println(book);
}
看在不设置keyProperty的时候他是null
在设置了keyProperty之后:
<insert id="insertBookemm" useGeneratedKeys="true" keyProperty="bookid">
insert into book values(null,#{bookname},#{type},#{price})
</insert>
真的很神奇!!!
在一个就是你不设置和设置他都会插入数据唯一不同的就是第二种方法会把返回值放在book对象的bookid里以此告诉你你不仅插入成功了而且插到那个位子了。