MyBatis Plus中使用or和and問題

最近在使用MyBatis Plus,發現在拼接條件的時候,and和or會出問題
比如下面這種

QueryWrapper<User> userWrapper = new QueryWrapper<User>();
userWrapper.eq("name", name);
userWrapper.eq("pwd", pwd).or().eq("phone", phone);

這種寫法拼出來的SQL語句是這樣的

select * from user where (name = ? and pwd= ? or phone = ?)

這樣子是肯定不行的,於是去官網查詢,發現正確的寫法是這樣的

QueryWrapper<User> userWrapper = new QueryWrapper<User>();
userWrapper.eq("name", name);
userWrapper.and(wrapper -> wrapper.eq("pwd", pwd).or().eq("phone", phone));
select * from user where name = ? and ( pwd= ? or phone = ?)

萬事大吉!!!

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