mybatis-plus之自定义sql、分页、Wrapper

自定义sql也想使用Wrapper构建?那这时候就要如下使用,先看定义好的部分常量:

这里只挑三个说明一下:

ew.customSqlSegment   对应条件构造器里的条件

ew.sqlSet   update是所设置的列

ew.sqlSelect   query时所选的列

@Select("SELECT u.* FROM USER u LEFT JOIN `role-user` ru ON u.id=ru.user_id LEFT JOIN role r ON r.id=ru.role_id ${ew.customSqlSegment}")
List<User> findFreash(@Param(Constants.WRAPPER)Wrapper wrapper);
@Select("select ${ew.sqlSelect} from user ${ew.customSqlSegment} ")
List<User> testSqlSelect(@Param(Constants.WRAPPER)Wrapper wrapper);
@Update("update `role-user` set ${ew.sqlSet} ${ew.customSqlSegment}")
int testSqlSet(@Param(Constants.WRAPPER)Wrapper wrapper);

主要是多对多的一个简单的角色表对应模型,相应的使用例子

        userDao.findFreash(Wrappers.query().gt("u.age",19).eq("r.id",1)).forEach(System.out::println);
        userDao.testSqlSelect(Wrappers.query().select("name","age").like("email","qq")).forEach(System.out::println);
userDao.testSqlSet(Wrappers.update().set("set role_id ",2).eq("user_id",1));

对应的sql语句:

select u.* from user u left join `role-user` ru on u.id=ru.user_id left join role r on r.id=ru.role_id where u.age > ? and r.id = ?
 
select name,age from user where email like ?
 
update `role-user` set role_id =? where user_id = ?

Map接受返回值(WRAPPER传递条件)

 @Select("SELECT * FROM USER u LEFT JOIN `role-user` ru ON u.id=ru.user_id LEFT JOIN role r ON r.id=ru.role_id ${ew.customSqlSegment}")
    List<Map<String,Object>> findAll(@Param(Constants.WRAPPER)Wrapper wrapper);

分页

    @Select("SELECT * FROM USER u LEFT JOIN `role-user` ru ON u.id=ru.user_id LEFT JOIN role r ON r.id=ru.role_id ${ew.customSqlSegment}")
    List<Map<String,Object>> findWithPage(IPage page,@Param(Constants.WRAPPER)Wrapper wrapper);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值