- 只需在Mapper文件中的insert标签加上useGeneratedKeys和keyProperty属性。
- useGeneratedKeys=“true”,Mybatis会获取MySQL中的自增主键的值。
- keyProperty=“id”,将获取到的自增主键的值保存在对象的id属性中。
Mapper文件
<insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into user values (#{id}, #{lastName}, #{password})
</insert>
JAVA程序
public void test() throws IOException {
//读取配置文件创建SqlSession工厂
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//利用SqlSession工厂创建SqlSession实例
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
//利用SqlSession创建代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//让代理对象帮我们执行查询
User user = new User(null, "d", "123");
mapper.addUser(user);
System.out.println(user.toString()); // User{id=9, lastName='d', password='123'}
}finally {
sqlSession.close();
}
}