簡體   English   中英

如何在 postgresql 和 mybatis 中更新和增加一個計數器

[英]How to update and increment a counter in postgresql and mybatis

我正在使用spring-mybatis並且正在執行此update

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.test.Article">

    <update resultType="java.lang.Long"  id="updateClickCount" flushCache="true">
        UPDATE "article"
        SET "click_count" = "click_count" + 1
        WHERE "id" = #{id,jdbcType=NUMERIC}
        RETURNING "click_count";
    </update>

</mapper>

我希望能夠在與increment count count

相反,它給了我這個錯誤:

Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 81; Attribute "resultType" must be declared for element type "update".

如何讀取 postgrsql 和 mybatis 中的更新計數值?

我相信 UPDATE...RETURNING 語句會返回 ResultSet 中的值。 MyBatis 只解碼<select>語句中的 ResultSets。 所以你需要把你的陳述寫成<select> 這看起來很奇怪,但工作得很好。 不同的 XML 標簽不進行任何檢查以確保包含的 SQL 與標簽實際匹配。

您需要考慮的另一件事是 MyBatis 不會自動提交<select>語句 - 因此您可能需要在語句執行后手動提交,具體取決於您設置事務管理器的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM