1、当在mapper中使用多个参数,比如 单个与对象混合,都需要使用@Param注解。
@Select("select * from user a where a.id=#{id} and a.userCode=#{UserInfo.userCode}")
void test(@Param("id") String id,@Param("UserInfo") UserInfo req);
mybatis-plus
@Select("select a.* from user a inner join userdept b on a.id=b.userid ${ew.customSqlSegment}")
public UserEntity getUser(@Param(Constants.WRAPPER) QueryWrapper wrapper);
@Select("select a.* from user a inner join userdept b on a.id=b.userid ${ew.customSqlSegment}")
public UserEntity getUserEx(@Param("ew") QueryWrapper wrapper);
@Select("select a.* from (select a.* from user a where a.id=#{req.userId}) a inner join userdept b on a.id=b.userid ${ew.customSqlSegment}")
public UserEntity search(@Param("ew") QueryWrapper wrapper, @Param("req") ReqCondition req);
@Select("select a.* from user a inner join userdept b on a.id=b.userid ${ew.customSqlSegment}") public IPage<UserEntity> searchPage(IPage<?> page, @Param(Constants.WRAPPER) QueryWrapper wrapper);
以下引用 https://blog.csdn.net/weixin_43972615/article/details/112620102
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//下面这句是不查position这个字段
queryWrapper.select(User.class,item -> !item .getColumn().equals("position"));
//下面这句是查询position不为管理员且状态为1的用户
queryWrapper.select("position").notLike("position","管理员").eq("state",1);
//下面这句是查询指定字段,但是姓名中带“猛”的用户
queryWrapper.select("name", "age","position").like("name", "猛");
//根据条件查询
queryWrapper.eq(StringUtils.isNotBlank(dailyViolations.getName()), "name", dailyViolations.getName());
queryWrapper.ge(StringUtils.isNotBlank(startTime), "time", startTime);
queryWrapper.le(StringUtils.isNotBlank(endTime), "time", endTime);
//下面是排序 queryWrapper.orderByAsc("state");
queryWrapper.orderByDesc("time");