我做了一个简单的插入,并且想通过插入后返回用户数据库自增的id值,用来对另一张表进行补充(user表与userinfo表通过外键依赖连接起来,user表只存用户名和密码,其余都在userinfo表里)
在Controller层接收两个字符串username和password
@PostMapping("/register")
public Result<String> register(@Pattern(regexp = "^\\S{4,10}$") String username,@Pattern(regexp = "^\\S{8,16}$") String password) {
User u = userService.findByUsername(username);
if (u == null) {
userService.register(username, password);
return Result.success();
} else {
return Result.error("用户已存在");
}
}
在service层进行封装到user对象中
@Override
public void register(String username, String password) {
System.out.println("开始执行");
// todo 需要使用加密算法
User user = new User();
user.setUsername(username);
user.setPassword(password);
Integer id = userMapper.register(user);
System.out.println("返回的id值="+id);
userInfoMapper.insertRegistrationTime(id);
}
然后通过mybatis的xml文件进行用户新建操作
<insert id="register" parameterType="user" useGeneratedKeys="true" keyProperty="id">
insert into user(username,password) values(#{username},#{password})
</insert>
之前在数据库内就有两条了,我觉得返回应该就是自增的3了,可是当我看到mybiatis返回的结果的时候就不对了,返回了1,不是useGeneratedKeys="true" keyProperty="id"这两个会返回自增后的id吗,而且是一直返回1,也不自增