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绑定到对象当中了