其xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="user">
<!--插入并返回ID-->
<insert id="insertUser2" parameterType="com.gyf.model.User">
<selectKey keyProperty="id" resultType="int" order="AFTER">
select LAST_INSERT_ID()
</selectKey>
insert into user (username, sex, birthday, address) value (#{username}, #{sex}, #{birthday}, #{address})
</insert>
</mapper>
其测试代码
@Test
public void test5() throws IOException {
User user = new User("lb","1",new Date(),"兰州");
int row = session.insert("insertUser2", user);
session.commit();
System.out.println("userID:"+user.getId());
}
[selectKey标签]:通过select 查询来生成主键
[keyProperty]:指定存放生成主键的属性
[resultType]:生成主键所对应的Java类型
[order]:指定该查询主键SQL语句的执行顺序,相对于insert语句
[last_ insert_ id]: MySQL的函数,要配合insert语句- -起使用- - >
对于非自动生成的ID,也就是自己设置的,以UUID为例: