mybatis insert返回id

mybatis拿取自增id的值!

一、使用useGeneratedKeys

<insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.demo.pojo.User" >
      insert into user (nickname, username,
      password, email, state,
      tel, register_date, last_login_date,
      last_login_ip, validata_code, out_date
      )
      values ( #{nickname,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR},
      #{password,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{state,jdbcType=INTEGER},
      #{tel,jdbcType=VARCHAR}, #{registerDate,jdbcType=DATE}, #{lastLoginDate,jdbcType=DATE},
      #{lastLoginIp,jdbcType=VARCHAR}, #{validataCode,jdbcType=VARCHAR}, #{outDate,jdbcType=TIMESTAMP}
      )
  </insert>

dao的java接口语句如下

package com.demo.mapper;
import com.demo.pojo.User;
public interface UserMapper {
    int insert(User user);
}

测试类如下

@RunWith(SpringJUnit4ClassRunner.class)     //表示继承了SpringJUnit4ClassRunner类
@ContextConfiguration(locations = {"classpath:spring/*.xml"})
public class UserServiceTest {

   @Resource
   private UserService userService;

   @Resource
   private UserMapper userMapper;

    @Test
    public void insertUser() {
        User user = new User();
        user.setUsername("xiaohong");
        user.setPassword("Zeng1234");
        user.setEmail("[email protected]");
        user.setNickname("小红");
        user.setTel("15160000933");

        System.out.println("插入之前:"+user.getId());
        userMapper.insert(user);
        System.out.println("插入返回值:"+auto_id+"\t"+"插入后:"+user.getId())
    }
}

打印输出的结果

插入之前:null
插入返回值:1    插入后:6

二、用LAST_INSERT_ID()方法

<insert id="insert" parameterType="com.demo.pojo.User" >

      <selectKey resultType="Integer" order="AFTER" keyProperty="id">
          SELECT LAST_INSERT_ID() AS userId
      </selectKey>

      insert into user (nickname, username,
      password, email, state,
      tel, register_date, last_login_date,
      last_login_ip, validata_code, out_date
      )
      values ( #{nickname,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR},
      #{password,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{state,jdbcType=INTEGER},
      #{tel,jdbcType=VARCHAR}, #{registerDate,jdbcType=DATE}, #{lastLoginDate,jdbcType=DATE},
      #{lastLoginIp,jdbcType=VARCHAR}, #{validataCode,jdbcType=VARCHAR}, #{outDate,jdbcType=TIMESTAMP}
      )
  </insert>
剩下的与上边的代码类似,这里同样是将id绑定到对象当中了


猜你喜欢

转载自blog.csdn.net/qq_34292044/article/details/80492309