MyBatis中增刪改操作總結


一. 總結

1. MyBatis插入數據

Mapper文件的SQL語句 場景 執行結果 Dao層返回值 主鍵是否自增 瀏覽器訪問示例
insert into 正常插入 程序正常執行 1 主鍵自增
insert into 唯一索引重複 ERROR(DuplicateKeyException),Duplicate entry ‘xixi1’ for key 'name’) - 主鍵不自增 http://localhost:8080/insertUser?id=26&name=xixi1&age=21
insert into 主鍵重複 ERROR(DuplicateKeyException),Duplicate entry ‘25’ for key 'PRIMARY’ - 主鍵不自增 http://localhost:8080/insertUser?id=25&name=xixi2&age=21
insert ignore into 正常插入 程序正常執行 1 主鍵自增
insert ignore into 唯一索引重複 程序正常執行 0 主鍵不自增
insert ignore into 主鍵重複 程序正常執行 0 主鍵不自增
replace into 唯一索引重複 程序正常運行 2 刪除舊記錄,插入新記錄
replace into 主鍵重複 程序正常運行 2 直接替換該行記錄,id不會改變
replace into 主鍵和唯一索引都不重複 程序正常運行 1 新增一條記錄 http://localhost:8080/replaceNamesDO2?id=30&name=xixi7&age=189

2. MyBatis更新數據

Mapper文件的SQL語句 場景 執行結果 Dao層返回值 主鍵是否自增 示例
update 正常更新 更新成功 1 -
update 舊數據和要更新的值完全一樣 程序正常執行 1 -
update 沒有找到該條數據 程序正常執行 0 -
update 修改的唯一索引字段已有值 ERROR(DuplicateKeyException), Duplicate entry ‘xixi1’ for key 'name’ - -

3. MyBatis刪除數據

Mapper文件的SQL語句 場景 執行結果 Dao層返回值 主鍵是否自增 示例
delete 正常刪除數據 刪除成功 1 -
delete 沒有該條記錄 程序正常運行 0 -

二. MyBatis與MySQL執行增刪改操作的區別

  1. 插入操作:Mysq在執行插入操作(insert或insert ignore)時,如果唯一索引重複,無論SQL執行結果,主鍵仍會自增。
    • Mysql中執行insert:執行報錯,主鍵自增;
    • Mysql中執行insert ignore:執行告警,主鍵自增。
  2. 更新操作:沒有找到該條數據時,原生sql返回0行受影響,MyBatis返回結果爲1。
    • Mysql:執行結果爲受影響的行數;
    • MyBatis:執行結果爲被匹配的影響行數。

參考文獻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章