Mybatis中updateByPrimaryKeySelective和updateByPrimaryKey的用法區別
1. 用法區別
- updateByPrimaryKeySelective(Object obj)
updateByPrimaryKeySelective 接收的引數為對應於資料庫的實體類物件,利用欄位的自動匹配進行更新表的操作,如果傳入obj物件中的某個屬性值為null,則不進行資料庫對應欄位的更新。 - updateByPrimaryKey(Object obj)
與updateByPrimaryKeySelective的區別在於,如果傳入的obj物件中某個屬性值為null,會將對應的資料庫欄位賦值為null。
2. 舉例說明
User類
Class User{
Integer id;
String name;
Integer age;
String address;
}
123456
user表
id | name | age | address |
---|---|---|---|
1 | zhangsan | 18 | taiyuan |
2 | lisi | 20 | suzhou |
User物件
建立user物件,屬性為:id=1,name=zhangsan,age=22, address=null;
利用通用mapper分別呼叫兩種方法:
UserMapper.updateByPrimaryKeySelective(user)
的執行結果:
id | name | age | address |
---|---|---|---|
1 | zhangsan | 22 | taiyuan |
2 | lisi | 20 | suzhou |
UserMapper.updateByPrimaryKey(user)
的執行結果:
id | name | age | address |
---|---|---|---|
1 | zhangsan | 22 | null |
2 | lisi | 20 | suzhou |
相關文章
- JS中的!=、== 、!==、=== 的用法和區別JS
- MyBatis中#{}和${}的區別詳解MyBatis
- js中!和!!的區別與用法JS
- JQuery中html()和val()的用法區別jQueryHTML
- Linq中 AsQueryable(), AsEnumerable()和ToList()的區別和用法
- C++中break和continue的用法和區別C++
- 淺析mybatis中${}和#{}取值區別MyBatis
- PHP 中 bind 的用法 self 和 static 的區別PHP
- Linux中&&和&,|和||用法及區別詳解!Linux
- MyBatis中的<where>標籤和where子句的區別MyBatis
- 【Java面試】Mybatis中#{}和${}的區別是什麼?Java面試MyBatis
- Rust 中 *、&、mut、&mut、ref、ref mut 的用法和區別Rust
- SQLserver-MySQL的區別和用法ServerMySql
- Python中threading的join和setDaemon的區別及用法[例子]Pythonthread
- select into from 和 insert into select 的用法和區別
- Python中read()、readline()和readlines()三者間的區別和用法Python
- button 和input 的區別及在表單form中的用法ORM
- mybatis collection解析以及和association的區別MyBatis
- python中 os._exit() 和 sys.exit(), exit(0)的用法和區別Python
- MyBatis-06-Spring的SqlSession和原始區別MyBatisSpringSQLSession
- 【心得】Ctrl+Z、 、 、eof的區別和用法
- StretchBlt函式和BitBlt函式的區別和用法函式
- CSS中的class與id區別及用法CSS
- JavaScript中apply、call、bind的區別與用法JavaScriptAPP
- mybatis與hibernate的區別MyBatis
- BufferedReader和Scanner的用法和區別(建議多使用BufferedReader)
- JavaScript中for in 和for of的區別JavaScript
- Js中for in 和for of的區別JS
- mysql中!=和is not的區別MySql
- Python中is和==的區別Python
- JavaScript中==和===的區別JavaScript
- Linux中“>”和“>>”的區別Linux
- Python 中 is 和 == 的區別Python
- mysql中“ ‘ “和 “ ` “的區別MySql
- hive中round、floor、ceil區別及用法Hive
- mybatis入門程式:刪除、更新使用者&&hibernate和mybatis的區別MyBatis
- 一文搞懂Session和Cookie的用法及區別SessionCookie
- DecimalFormat數字格式化用法“0”和“#”的區別DecimalORM