MyBatis-Plus_实体作为条件构造器构造方法的参数
生活随笔
收集整理的這篇文章主要介紹了
MyBatis-Plus_实体作为条件构造器构造方法的参数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
查詢專欄:MP默認(rèn)查詢?cè)瓌t
查詢的是數(shù)據(jù)庫(kù)列名非實(shí)體類屬性。
實(shí)體作為條件構(gòu)造器構(gòu)造方法的參數(shù)
文章目錄
/*** 1.傳遞的參數(shù)如果是實(shí)體類* <p>* 注:這種情況傳遞過(guò)來(lái)的參數(shù)是等值的也就是=* 如果不想等值,例如:like '條件'* 在實(shí)體類中,需要處理屬性的上面添加@TableField(condition ="%s<#{%s}")* <p>* 里面的condition,可以采用已經(jīng)有的栗子,如果沒(méi)有符合你需求的,* 可以參考SqlCondition(比較條件常量定義類)它的形式,仿寫除符合自己需求的condition* <p>* 例如:age 小于 條件* age < '傳過(guò)來(lái)的條件'** @TableField(condition ="%s<,#{%s}")* age*/@Testpublic void selectByWrapperEntity() {User whereUser = new User();whereUser.setName("劉雨紅");whereUser.setAge(32);QueryWrapper<User> queryWrapper = new QueryWrapper<User>(whereUser);List<User> userList = userMapper.selectList(queryWrapper);userList.forEach(System.out::println);}/*sql形式:SELECT id,name,age,email,manager_id,create_time FROM user WHERE name=? AND age=?不等值的sql:SELECT id,name,age,email,manager_id,create_time FROM user WHERE name LIKE CONCAT('%',?,'%') AND age<?*/ /*** 2.傳遞的參數(shù)如果是實(shí)體類和參數(shù)條件同時(shí)存在,這種情況互不影響,條件都會(huì)拼接在where后邊* <p>* 注意:不要重復(fù)了*/@Testpublic void selectByWrapperEntity2() {User whereUser = new User();whereUser.setName("劉雨紅");whereUser.setAge(32);QueryWrapper<User> queryWrapper = new QueryWrapper<>(whereUser);queryWrapper.like("name", "雨").lt("age", 40);List<User> userList = userMapper.selectList(queryWrapper);userList.forEach(System.out::println);}/*sql形式:SELECT id,name,age,email,manager_id,create_time FROM userWHERE name=? AND age=? AND name LIKE ? AND age < ?*/實(shí)體類:
@Data public class User {// 主鍵private Long id;//姓名@TableField(condition = SqlCondition.LIKE)private String name;//年齡@TableField(condition ="%s<#{%s}")private Integer age;//郵箱private String email;// 上級(jí)idprivate Long manager_id;//創(chuàng)建時(shí)間private LocalDateTime createTime; }參考SqlCondition類的源碼,自定義符合自己需求的表達(dá)式
/*** SQL 比較條件常量定義類** @author hubin* @since 2018-01-05*/ public class SqlCondition {/*** 等于*/public static final String EQUAL = "%s=#{%s}";/*** 不等于*/public static final String NOT_EQUAL = "%s<>#{%s}";/*** % 兩邊 %*/public static final String LIKE = "%s LIKE CONCAT('%%',#{%s},'%%')";/*** % 左*/public static final String LIKE_LEFT = "%s LIKE CONCAT('%%',#{%s})";/*** 右 %*/public static final String LIKE_RIGHT = "%s LIKE CONCAT(#{%s},'%%')";}想學(xué)習(xí)更多微服務(wù)、分布式、中間件、數(shù)據(jù)庫(kù)、項(xiàng)目快速構(gòu)建等系列技術(shù)
請(qǐng)?jiān)L問(wèn)http://gblfy.com
讓我們一起進(jìn)步!!!
總結(jié)
以上是生活随笔為你收集整理的MyBatis-Plus_实体作为条件构造器构造方法的参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Jenkins_GithubFork程序
- 下一篇: java 中的原始类型与原始封装类型