Я новичок в mybatis. Я пытаюсь получить идентификатор последней вставленной записи. Моя база данных - mysql, а мой картограф xml -
<insert id="insertSelective" parameterType="com.mycom.myproject.db.mybatis.model.FileAttachment" >
<selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
SELECT LAST_INSERT_ID() as id
</selectKey>
insert into fileAttachment
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="name != null" >
name,
</if>
<if test="attachmentFileSize != null" >
size,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="name != null" >
#{name,jdbcType=VARCHAR},
</if>
<if test="attachmentFileSize != null" >
#{attachmentFileSize,jdbcType=INTEGER},
</if>
</trim>
</insert>
Я думал, что написанное здесь выражение «SELECT LAST_INSERT_ID() as id» должно возвращать идентификатор последней вставленной записи, но я всегда получаю 1 после вставки записи.
Мой класс mapper.java у меня есть метод
int insertSelective(FileAttachment record);
В моем классе дао я использую
int id = fileAttachmentMapper.insertSelective(fileAttachment);
Я получаю значение Id всегда 1, когда вставляется новая запись. мое поле Id автоматически увеличивается, и записи вставляются правильно.