Mybatis 新增数据返回主键id
service、dao层代码都一样,省略不写了。
主要是xml里的sql 配置不一样
<insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.xxx.xxx.domain.User">
useGeneratedKeys 默认是false 这里改为true
意思大概是使用jdbc的getGenereatedKeys方法获取主键并赋值到keyProperty设置的属性中。这样插入成功后就会把表的自增id值赋给User类的id属性
然后我们需要使用这样的方式获取id值:
//这里的i 值是影响行数
int i=userServiceImpl.insert(user);
//这里才是获取id值
int id=user.getId();
这里我是踩过的坑 ,也是看到网上的文章才解决的