JavaSpringBoot中,Mybatis plus 语法展示

目录

语法展示

基础的增删改查

分页查询

语法指导

删除操作

条件操作


语法展示

java 复制代码
@Mapper
public interface UserMapper extends BaseMapper<User> {
    
}
java 复制代码
public interface UserService extends IService<User> {

}
java 复制代码
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    @Autowired
    private UserMapper userMapper;
}
java 复制代码
@RestController
@RequestMapping("/test/user")
public class UserController {
    @Autowired
    private UserService userService;
}

基础的增删改查

java 复制代码
查询所有,参数为构造器 : userMapper.selectList(null) 

根据id添加数据,参数为实体类对象:  userMapper.insert(user);

根据id修改数据,参数为实体类对象:   userMapper.updateById(user)

根据id删除数据,参数为int / Long :  userMapper.deleteById(5L)

根据id查询数据,餐位数int / Long : userMapper.selectById(4L)

分页查询

java 复制代码
  R<IPage<User>>  getUsersByNamec(Page<User> page, String name);
javascript 复制代码
    @Override
    public R<IPage<User>> getUsersByNamec(Page<User> page, String name) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.like(StringUtils.isNotBlank(name), "name", name);
        return R.success(userMapper.selectPage(page, queryWrapper));
    }
java 复制代码
    // 根据姓名分页查询用户
    @GetMapping("/getUsersByName")
    public IPage<User> getUsersByName(@RequestParam(defaultValue = "1") Long current,
                                      @RequestParam(defaultValue = "2") Long size,
                                      @RequestParam(required = false) String name) {

        // 构建分页对象
        Page<User> userpage = new Page<>(current, size);


        //返回对象得到分页所有数据
        long pages = userPage.getPages(); //总页数
        long current = userPage.getCurrent(); //当前页
        List<User> records = userPage.getRecords(); //查询数据集合
        long total = userPage.getTotal(); //总记录数
        boolean hasNext = userPage.hasNext();  //下一页
        boolean hasPrevious = userPage.hasPrevious(); //上一页

        // 调用服务方法进行分页查询
        return userService.getUsersByName(page, name);
    }

语法指导

java 复制代码
     * mp复杂查询
     * eq 就是 equal等于
     * ne就是 not equal不等于
     *
     * gt 就是 greater than大于
     * ge 就是 greater than or equal 大于等于
     * lt 就是 less than小于
     * le 就是 less than or equal 小于等于
     *
     * in 就是 in 包含(数组)
     * between 就是 在2个条件之间(包括边界值)
     * notBetween
     *
     * isNull 就是 等于null
     * isNotNull 不等于
     *
     * like 就是 模糊查询
     * notLike
     * likeLeft
     * likeRight
     *
     * orderBy
     * orderByDesc
     * orderByAsc
  

删除操作

java 复制代码
批量删除: userMapper.deleteBatchIds(Arrays.asList(8, 9, 10));

简单删除:

    //简单条件删除
    @Test
    public void testDeleteByMap() {
        HashMap<String, Object> map = new HashMap<>();
        //  name,age 为字段 ---> lucy,20 为值
        map.put("name", "lucy");
        map.put("age", 20);
        int result = userMapper.deleteByMap(map);
        System.out.println(result);
    }

条件操作

java 复制代码
 // 查询年龄  > 21 的  
  public void testQuery() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper
                .ge("age", 21);
        List<User> users = userMapper.selectList(queryWrapper);
        System.out.println(users);
    }


// 查询name 是 Tom的
    @Test
    public void testSelectOne() {
        QueryWrapper<User>queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("name", "Tom");
        User user = userMapper.selectOne(queryWrapper);//只能返回一条记录,多余一条则抛出异常
        System.out.println(user);
    }


// 查询年龄在20 ~ 30之间的
    @Test
    public void testSelectCount() {
        QueryWrapper<User>queryWrapper = new QueryWrapper<>();
        queryWrapper.between("age", 20, 30);
        Integer count = userMapper.selectCount(queryWrapper); //返回数据数量
        System.out.println(count);
    }

查询条件构建: 使用 QueryWrapper 对象 queryWrapper 构建查询条件。在这个例子中,通过 .select("name", "age") 指定要查询的字段,.like("name", "e") 表示名字中包含字母 "e",.likeRight("email", "5") 表示邮箱以数字 "5" 结尾。

java 复制代码
    @Test
    public void testSelectMaps() {
        QueryWrapper<User>queryWrapper = new QueryWrapper<>();
        queryWrapper
                .select("name", "age")
                .like("name", "y")
                .likeRight("email", "5");
        List<Map<String, Object>>maps = userMapper.selectMaps(queryWrapper);//返回值是Map列表
        maps.forEach(System.out::println);
    }
相关推荐
茶馆大橘3 分钟前
(黑马点评)八、实现签到统计和uv统计
数据库·redis·学习·阿里云·黑马点评
猿饵块13 分钟前
cmake--get_filename_component
java·前端·c++
编程小白煎堆14 分钟前
C语言:枚举类型
java·开发语言
王哈哈嘻嘻噜噜21 分钟前
c语言中“函数指针”
java·c语言·数据结构
qq_3391911429 分钟前
spring boot admin集成,springboot2.x集成监控
java·前端·spring boot
苹果酱05671 小时前
通过springcloud gateway优雅的进行springcloud oauth2认证和权限控制
java·开发语言·spring boot·后端·中间件
Sunny_yiyi1 小时前
Gateway--服务网关
java·开发语言·gateway
可爱推推1 小时前
头歌数据库系统原理数据模型测试
数据库·头歌
Mike!1 小时前
C++进阶 set和map讲解
java·开发语言·数据结构·c++·set·map·cpp
翔云1234561 小时前
Go语言的垃圾回收(GC)机制的迭代和优化历史
java·jvm·golang·gc