使用自定义sql前提:MP版本>=3.0.7
使用方法一:
第一步:dao层创建自定义方法
package com.mp.first.dao;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.mp.first.entity.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface UserMapper extends BaseMapper<User> {
//不需要加where,MP会自动判断需要则添加
@Select("select * from user ${ew.customSqlSegment}")
List<User> selectAll(@Param(Constants.WRAPPER) Wrapper<User> wrapper);
}
第二步:测试自己创建的方法
// select * from user WHERE (name LIKE ? AND (age < ? OR email IS NOT NULL))
@Test
public void selectMy(){
LambdaQueryWrapper<User> lambdaQuery = Wrappers.<User>lambdaQuery();
lambdaQuery.likeRight(User::getName, "J")
.and(lq->lq.lt(User::getAge,40).or().isNotNull(User::getEmail));
List<User> userList = userMapper.selectAll(lambdaQuery);
userList.forEach(System.out::println);
}
使用方法二:(xml方式)