mybatis插入数据返回主键自增值需要在insert节点使用
useGeneratedKeys="true" keyProperty="userId"
代码:
<insert id="insert" parameterType="com.User" useGeneratedKeys="true" keyProperty="userId">
insert into user (user_id,name,status)
values (#{userId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{status,jdbcType=TINYINT})
</insert>
使用@Insert注解方式:
@Insert("insert into t_user (username,password,valid,create_time) values (#{username},#{password},#{valid},#{createTime})")
@Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id")
int add(User user);
Java 代码中返回的uid需要从对象中取:
User user = new User();
user.setName(李四);
user.setStatus(0);
int result = userDao.insert(user);//这里的result返回的只是受影响的数据行数,并不是主键值
int uid = user.getId();//这里java自动把新建的用户ID赋值给了user对象的主键,所以可以直接用user对象获取主键值