持久层框架使用Mybatis,新增成功后,将数据库刚刚新增的这条数据的主键返回。
mapper.xml代码
<insert id="addScanData" parameterType="java.util.Map" useGeneratedKeys="true" keyProperty="id">
insert into test_table
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="batch != null">batch,</if>
<if test="carNo != null and carNo != ''">car_no,</if>
<if test="num != null">plate_number,</if>
<if test="loadTime != null">load_time,</if>
<if test="isDeleted != null">is_deleted,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="batch != null">#{batch},</if>
<if test="carNo != null and carNo != ''">#{carNo},</if>
<if test="num != null">#{num},</if>
<if test="loadTime != null">#{loadTime},</if>
<if test="isDeleted != null">#{isDeleted},</if>
</trim>
</insert>
Test.java代码,将Map对象传入,执行insert语句后,就可以从Map对象中拿到id值,即为数据库新增数据的主键。
...
dao.save("com.test.mapper.TestMapper.addScanData", map);
scanId = Integer.valueOf(String.valueOf(map.get("id")));
...
当mapper.xml中传入的parameterType是自己定义的实体类时,例如是User对象,可以直接通过user.getId()拿到上述id。