使用springboot整合shiro写demo的时候发现一个问题,当我在使用mybatis的insert标签时,
<insert id="addUser" useGeneratedKeys="true" keyProperty="userid" >
插入一点问题也没有,但是当我们拿到userid的时候永远是1,因为它返回的是插入成功的数量
Integer addUser(@Param("user") User user);
这是mapper接口。再百度上找了很多以后都没有解决,有的说要用注解里的带号+“.”属性,keyProperty=“user.userid”形式,但是依然返回值是插入数,
最后在简书上看到一篇文章,我们使用javabean作为参数使用insert标签的时候,mybatis会自动的把需要的主键注入到参数的javabean里面,所所以我们在使用的时候不需要integer,直接拿到user.getUserid();
我们看最后的代码
<insert id="addUser" useGeneratedKeys="true" keyProperty="user.userid" parameterType="online.zzy.springbootmybatis.beans.User">
insert into user (username,password) values (#{
user.username},#{
user.password});
</insert>
Integer addUser(@Param("user") User user);
shiroDao.addUser(user);
System.out.println(user);
输出结果
User{userid=27, username=‘zzy1’, password=‘456456’, authority=null}