MyBatis插入对象后返回获得自增的主键

很多情况下,我们的主键都是自增的,我们可能在插入后马上就获取到刚刚插入的数据的主键,下面就来记录一下:

插入记录在MyBatis中的写法:

<insert id="saveXxx" parameterType="com.wjy329.entity.xxx">
      <selectKey resultType="Integer" order="AFTER" keyProperty="id">
          SELECT LAST_INSERT_ID()
      </selectKey>
        insert into tableName
		(
			`line2`,
			`line3`
		)
		values
		(
			#{line2},
			#{line3}
		)
</insert>

关键在于

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

你以为仅仅获取到这个就行了?那是不可能的,直接获取返回的int,你会发现是一个固定的数字,它代表刚才插入数据影响的行。

在执行完插入操作后,我们只需在后面直接用getId()方法就行,例如: 

studentDao.saveStudent(student);
Integer id = student.getId;

Leave a Reply