在ibatis中配置如下:
<statement id="updateResult" parameterClass="com.pojo.search.SearchResult">
Merge into SEARCH_RESULT s USING DUAL
ON(s.criteria_id = #criteriaId# and s.deal_id = #dealId#)
When matched then
update set s.deal_version = #dealVersion#,
s.add_user = #addUser#,
s.add_ts = sysdate
When not matched then
INSERT ( CRITERIA_RESULT_ID,
CRITERIA_ID,
DEAL_ID,
DEAL_VERSION,
IS_CHECKED,
ADD_USER,
ADD_TS)
VALUES( SEQ_SEARCH_RESULT_ID.nextval,
#criteriaId#,
#dealId#,
#dealVersion#,
#isChecked:VARCHAR#,
#addUser#,
sysdate)
</statement>
(1) using dual ,同一张表连接,也可以使用using (select count(*) co from where criterid_id = #id# ) s on (s.co > 0) ,这样使用;
(2) <statement id ,使用statement的方式
(3) java 代码中使用exector.update("****",paraMap)的方式使用。