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 |
相關文章
- MyBatis中#{}和${}的區別詳解MyBatis
- JS中的!=、== 、!==、=== 的用法和區別JS
- JS中的!=、== 、!==、===的用法和區別。JS
- js中!和!!的區別與用法JS
- SQL中IN和EXISTS用法的區別SQL
- Mybatis中#{}和${}傳參的區別及#和$的區別小結MyBatis
- JQuery中html()和val()的用法區別jQueryHTML
- 淺析mybatis中${}和#{}取值區別MyBatis
- PHP中MySQL、MySQLi和PDO的用法和區別PHPMySql
- PHP 中 bind 的用法 self 和 static 的區別PHP
- 【Java面試】Mybatis中#{}和${}的區別是什麼?Java面試MyBatis
- C++中break和continue的用法和區別C++
- MyBatis中的<where>標籤和where子句的區別MyBatis
- Linux中&&和&,|和||用法及區別詳解!Linux
- Linq中 AsQueryable(), AsEnumerable()和ToList()的區別和用法
- Rust 中 *、&、mut、&mut、ref、ref mut 的用法和區別Rust
- .NET中的三種Timer的區別和用法
- SQLserver-MySQL的區別和用法ServerMySql
- mysql中tinyint、smallint、int和bigint型別的用法區別MySql型別
- 關於mybatis中的resultType與resultMap用法及誤區MyBatis
- mybatis collection解析以及和association的區別MyBatis
- button 和input 的區別及在表單form中的用法ORM
- exists和not exists及in和not in的用法與區別
- mybatis #與$的區別MyBatis
- set autotrace的用法和含意及區別
- CSS中的class與id區別及用法CSS
- 【心得】Ctrl+Z、 、 、eof的區別和用法
- setBackground(),setBackgroundResource(),setBackgroundColor(),setBackgroundDrawable()的區別和用法
- python中 os._exit() 和 sys.exit(), exit(0)的用法和區別Python
- delphi中的語法 div / mod 的用法區別
- awk sub和gsub區別及用法
- Python中threading的join和setDaemon的區別及用法[例子]Pythonthread
- java和js中正規表示式的用法和區別JavaJS
- MyBatis-06-Spring的SqlSession和原始區別MyBatisSpringSQLSession
- mysql中!=和is not的區別MySql
- JavaScript中for in 和for of的區別JavaScript
- mysql中“ ‘ “和 “ ` “的區別MySql
- Js中for in 和for of的區別JS