这是mybatis保存操作的xml配置部分文件: <!-- 保存用户 --> <insert id="saveUser" parameterType="com.lucky.domain.User"> <!--获取保存数据的id--> <!--keyProperty为:id的属性名称,对应实体类 keyColumn为:id的列名,对应表,数据库id的值--> <selectKey keyProperty="userId" keyColumn="id" resultType="com.lucky.domain.User" order="AFTER"> select last_insert_id() </selectKey> insert into user (id,username,birthday,sex,address) values (#{userId},#{userName},#{userBirthday},#{userSex},#{userAddress}) </insert>
这时测试的方法: public void testSave() { User user = new User(); user.setUserId(40); user.setUserName("陈伟"); user.setUserAddress("湖南"); user.setUserBirthday(new Date()); user.setUserSex("男"); System.out.println("保存前"+user); userDao.saveUser(user); System.out.println("保存后"+user); }
这时结果:
保存前User{userId=40, userName='陈伟', userSex='男', userBirthday=Thu Nov 21 11:38:19 CST 2019, userAddress='湖南'}
保存后User{userId=null, userName='陈伟', userSex='男', userBirthday=Thu Nov 21 11:38:19 CST 2019, userAddress='湖南'}
疑问:为什么不能取出最后一次保存操作的数据库的id的数据?