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("15160000933@163.com");
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绑定到对象当中了