美文网首页
记录MyBatis插入数据不返回ID的问题

记录MyBatis插入数据不返回ID的问题

作者: 也许________ | 来源:发表于2019-06-04 15:18 被阅读0次

    问题描述:
    插入一条数据,根据返回的ID做其他数据的录入,但返回值一直为1
    查了很久资料,都是描述mapper.xml中如何配置属性,让sql执行完返回ID,并没有描述ID怎么能拿到

    <insert id="insertUser" parameterType="users" useGeneratedKeys="true" keyProperty="id" keyColumn="ID">
       INSERT INTO
        USERS (USERNAME,BIRTHDAY,SEX,ADDRESS)
       VALUES
      (#{userName},#{birthday},#{sex},#{address})
    </insert>
    
     @Override
      public int insertUser(Users users) {
        return usersDao.insertUser(users);
      }
    
    @RequestMapping("insertUser")
        public String insertUser() {
    
            try {
    
                Users users = new Users();
                users.setUserName("测试插入");
                users.setBirthday(new Date());
                users.setSex("0");
                users.setAddress("帝都");
                userServiceImpl.insertUser(users);
                logger.info("插入后id={}", JSONObject.toJSONString(users));
    
            } catch (Exception e) {
                e.printStackTrace();
                return "error";
            }
            return "success";
        }
    
    

    注意方法insertUser的返回值,并不是返回插入数据后生成的ID,而是数据库受影响行数,成功返回1,失败返回0,要想获取本次插入数据,数据库自动生成的ID,需要通过传入的参数users,调用getID进行获取,因为MyBatis把数据库生成的ID封装到了该参数中

    ps:
    数据库支持主键自增长,本例使用的数据库为MySQL

    相关文章

      网友评论

          本文标题:记录MyBatis插入数据不返回ID的问题

          本文链接:https://www.haomeiwen.com/subject/zkalxctx.html