<insert id="saveUser" parameterType="cn.edu.hdu.domain.User">
<selectKey keyProperty="id" keyColumn="id" resultType="java.lang.Integer" order="AFTER">
select last_insert_id();
</selectKey>
insert into user(username,address,sex,birthday) values(#{username},#{address},#{sex},#{birthday})
</insert>
只需要在insert中加入selectkey标签,其中keyProperty表示实体类中的属性名,keyColumn表示的是数据的列名,order表示在插入前获取还是插入后获取,这里是插入后。
这样id就会赋值到一开始引入的参数user中
案例演示
@Test
public void testSaveOne(){
User user = new User();
user.setAddress("杭州市江干区");
user.setBirthday(new Date());
user.setSex("男");
user.setUsername("骚李舜");
System.out.println(user);
userDao.saveUser(user);
System.out.println(user);
}
分别在保存前后保存后分别打印了user中的属性值
下面是结果
在插入前id=null,而插入后id=56,证明获取了id