方式一:
使用 <insert> 標籤的屬性
<insert id="insert" parameterType="com.ahav.reserve.pojo.SummaryParagraphs" useGeneratedKeys="true" keyProperty="partId" keyColumn="part_id">
insert into summary_paragraphs (summary_id, part,
is_share, translation, initial_translation,
audio_pcm, addio_wav
)
values (#{summaryId,jdbcType=INTEGER}, #{part,jdbcType=INTEGER},
#{isShare,jdbcType=INTEGER}, #{translation,jdbcType=VARCHAR}, #{initialTranslation,jdbcType=VARCHAR},
#{audioPcm,jdbcType=VARCHAR}, #{addioWav,jdbcType=VARCHAR}
)
</insert>
方式二:
使用 <selectKey> 標籤
<insert id="insertSelective" parameterType="com.ahav.reserve.pojo.SummaryParagraphs">
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="partId">
SELECT LAST_INSERT_ID()
</selectKey>
insert into summary_paragraphs
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="partId != null">
part_id,
</if>
<if test="summaryId != null">
summary_id,
</if>
<if test="part != null">
part,
</if>
<if test="isShare != null">
is_share,
</if>
<if test="translation != null">
translation,
</if>
<if test="initialTranslation != null">
initial_translation,
</if>
<if test="audioPcm != null">
audio_pcm,
</if>
<if test="addioWav != null">
addio_wav,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="partId != null">
#{partId,jdbcType=INTEGER},
</if>
<if test="summaryId != null">
#{summaryId,jdbcType=INTEGER},
</if>
<if test="part != null">
#{part,jdbcType=INTEGER},
</if>
<if test="isShare != null">
#{isShare,jdbcType=INTEGER},
</if>
<if test="translation != null">
#{translation,jdbcType=VARCHAR},
</if>
<if test="initialTranslation != null">
#{initialTranslation,jdbcType=VARCHAR},
</if>
<if test="audioPcm != null">
#{audioPcm,jdbcType=VARCHAR},
</if>
<if test="addioWav != null">
#{addioWav,jdbcType=VARCHAR},
</if>
</trim>
</insert>
使用返回的主鍵:
SummaryParagraphs summaryParagraphs = new SummaryParagraphs();
summaryParagraphs.setPart((duanshu++));
summaryParagraphs.setIsShare(0);
summaryParagraphs.setInitialTranslation(SystemConstant.FILE_URL + "recording" + uuidRecordingName+".txt");
summaryParagraphs.setAudioPcm(SystemConstant.FILE_URL + "recording" + uuidRecordingName+".pcm");
summaryParagraphs.setAddioWav(SystemConstant.FILE_URL + "recording" + uuidRecordingName+".wav");
System.out.println("添加前:" + summaryParagraphs.getPartId());
speech.summaryParagraphsMapper.insert(summaryParagraphs);
System.out.println("添加後:" + summaryParagraphs.getPartId());
打印結果:
添加前:null
添加後:11