MyBatis多个操作

时间:2014-08-22 10:55:52

标签: sql select sql-update mybatis

我在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,但这不起作用。

1 个答案:

答案 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();