update語句的返回值是什麼

2021-09-14 05:29:01 字數 740 閱讀 6842

執行一條update語句,執行成功後返回值是 1 ,所以就理所當然的認為返回的是受影響的行數,

但是當你再次執行這條update語句時,按正常的邏輯,資料已存在,更新不會成功,應當返回 0,但是返回值依舊

是 1 (已測試過),所以返回值並不是受影響的行數,檢視別人的文章,得知返回值是matched記錄數(匹配到的行數)

jdbc.driver=com.mysql.jdbc.driver

jdbc.url=jdbc:mysql://localhost:3306/ssm

jdbc.username=root

jdbc.password=123456

真的是這樣嗎

我們知道當資料庫中的記錄被修改之後,我們在次執行相同的 update 語句將不會影響到資料記錄行數。

並不是這樣的

麼有沒有辦法讓 mybatis 的 update 操作的返回值是受影響的行數呢。因為我們業務邏輯中有時會根據這個返回值做業務判斷。答案當然是有的。

修改資料庫鏈結配置為:增加了 useaffectedrows 字段資訊。

jdbc.driver=com.mysql.jdbc.driver

jdbc.url=jdbc:mysql://localhost:3306/ssm?useaffectedrows=true

jdbc.username=root

jdbc.password=123456

update語句的返回值問題總結

執行一條update語句,執行成功後返回值是 1 所以就理所當然的認為返回的是受影響的行數,但是當你再次執行這條update語句時,按正常的邏輯,資料已存在,更新不會成功,應當返回 0,但是返回值依舊 是 1 所以返回值並不是受影響的行數,實際上的返回值是matched記錄數 匹配到的行數 jdbc...

函式的謂詞是什麼? cin的返回值是什麼?

所謂函式謂詞,即標準庫演算法傳遞的引數,可以指定演算法的操作,如std sort,預設是從小到大,通過謂詞可以修改從大到小。包含基本的5種謂詞模式 函式,函式指標,lambda表示式,函式物件,庫定義的函。詳細見文章 c 演算法 algorithm 的 謂詞 predicate 詳解 stl 中 i...

MyBatis的update返回值改為受影響的行數

專案中經常通過update的sql語句進行更新資料,而在目前的框架中,mybatis是主流的框架,所以理解update的真實的返回值也顯得相當重要 在專案中,經常通過判斷update的返回值去判斷資料是否更新成功,而事實上update是我們理解的那樣嗎?這裡直接給我結論,update的原生返回值是通...