[英]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.