先看这样一段代码:
<insert id="insertData" parameterType="TbSchedule">
INSERT INTO `tb_schedules`
(
`courseID`,`courseName`,`requirement`,`content`,`openYear`,`openTerm`,`fromWeek`,`endWeek`,`deptID`,`status`
)VALUES (
#{courseID},#{courseName},#{requirement},#{content},#{openYear},#{openTerm},#{fromWeek},#{endWeek},#{deptID},#{status}
);
<selectKey resultType="int" order="AFTER" keyProperty="scheduleID">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
INSERT INTO `tb_schedules`
(
`courseID`,`courseName`,`requirement`,`content`,`openYear`,`openTerm`,`fromWeek`,`endWeek`,`deptID`,`status`
)VALUES (
#{courseID},#{courseName},#{requirement},#{content},#{openYear},#{openTerm},#{fromWeek},#{endWeek},#{deptID},#{status}
);
<selectKey resultType="int" order="AFTER" keyProperty="scheduleID">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
这样的代码是没有任何问题的,但是为什么无法获取到值,同时也无法绑定呢,原因在对应的接口文件,会发现有两种参数传递方式,前面的注解和后面的直接传参数。
如果使用上面的传递注解参数形式那么在xml文件中对应的就是对应的名称的变量。而后面一种呢,会在xml中绑定一个参数类型,使用的变量就是对应的对象属性。
综上所述,如果要使用返回绑定值,那么必须使用参数类型绑定,而不是注解形式。
当前还没有任何评论