我在code
以下进行更新并获得下一个值。
<update id="updateNextReference">
UPDATE table_name
SET value
WHERE condition
</update>
<select id="selectNextReference" resultType="java.lang.Integer">
SELECT value
FROM <<table>>
WHERE <<condition>>
</select>
是否可以以我更新的方式执行这两项操作,并使用SelectKey
获取值。
我尝试在SelectKey
中添加update
,但这不起作用。
答案 0 :(得分:0)
如果您在mapper xml文件中使用标记<insert>
而不是<update>
,那么它就可以使用。
当我尝试使用<update>
标记时,我在阅读mapper文件时遇到异常。
<insert id="selectKeyTest" parameterType="MyClass">
<selectKey keyProperty="prop1" order="AFTER" resultType="Long" >
select col1 from myTable WHERE col2 = #{prop2}
</selectKey>
UPDATE myTable
SET col1 = 1
WHERE col2= #{prop2}
</insert>
执行update语句后,select语句会将col1的值设置为MyClass中的prop1属性。所以,在java:
MyClass myObj = new MyClass();
myObj.setProp2("2");
myService.getMapper(SelectKeyMapper.class).selectKeyTest(myObj);
String resultOfSelectKey = myObj.getProp1();