在xml的insert标签加入useGeneratedKeys=“true” keyProperty="id"即可
<insert id="insertBimModel" parameterType="com.xingceng.bimsys.mbg.model.BimModel" useGeneratedKeys="true" keyProperty="id">
INSERT INTO `bim_model`
(`id`,`model_id`,`parent_id`,`model_name`,`model_summary`,`create_time`,`model_path_zip`,
`project_id`,`model_path`,`sort_num`,`type`,`deleted`)
VALUES
(#{id},#{modelId},#{parentId},#{modelName},
#{modelSummary},#{createTime},#{modelPathZip},#{projectId},
#{modelPath},#{sortNum},#{type},#{deleted})
</insert>
int i = bimModelDataDao.insertBimModel(bimParentModel);
if (i>0){
System.out.println("id="+bimParentModel.getId());
}
注意可能导致useGeneratedKeys=“true” keyProperty=“id” id回显失效的场景
-
数据库id列没有设置自增
-
不要使用@Param和xx.xx
插入语句上加入下面这个标签也可以
<insert id="insert" parameterType="com.xingceng.bimsys.mbg.model.BimModelProgress">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
insert into bim_model_progress (floor, major, plan_start_time,
plan_finish_time, actual_start_time, actual_finish_time,
status)
values (#{floor,jdbcType=VARCHAR}, #{major,jdbcType=VARCHAR}, #{planStartTime,jdbcType=TIMESTAMP},
#{planFinishTime,jdbcType=TIMESTAMP}, #{actualStartTime,jdbcType=TIMESTAMP}, #{actualFinishTime,jdbcType=TIMESTAMP},
#{status,jdbcType=INTEGER})
</insert>