springboot-mybatisplus-demo

mapper service impl

复制代码
package com.example.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {

}

public interface UserService extends IService<User> {

}

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

}

controller

java 复制代码
package com.example.demo.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.Result;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.time.LocalDateTime;
import java.util.List;
import java.util.WeakHashMap;

@RestController
@Slf4j
@RequestMapping("/user")
public class UserController extends BaseController {
    @Autowired
    private UserService userService;

    @GetMapping
    public Result index() {
        return Result.success(userService.list());
    }

    @GetMapping("/page")
    public Result page(@RequestParam(defaultValue = "1", required = false) Integer page,
                       @RequestParam(defaultValue = "10", required = false) Integer size) {

        Page<User> page1 = Page.of(page, size);
        page1 = userService.page(page1);
        log.info("page: {}", page1);
        return Result.success(page1);
    }

    @GetMapping("/t1")
    public Result t1() {
        User user = new User();
        user.setUsername("tom");

        List<User> list = userService.list(Wrappers.<User>lambdaQuery().ge(User::getId, 138));

        userService.update(user, Wrappers.<User>lambdaUpdate().ge(User::getId, 138));

        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("now(),id,username");
        System.out.println(queryWrapper.getSqlSelect());

        userService.list(queryWrapper);

        return Result.success( list);
    }
}

需要增加配置类

java 复制代码
package com.example.demo.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {

    /**
     * 添加分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加
        // 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType
        return interceptor;
    }
}

源码:https://gitee.com/fanruitian/springboot-mybatis-demo

相关推荐
IT_陈寒1 小时前
Redis持久化这个坑,我爬了一整天才出来
前端·人工智能·后端
无风听海1 小时前
多租户系统中的 OIDC:Discovery 端点与联合登录的深度实践
后端·python·flask
小小前端仔LC2 小时前
Node.js + LangChain + React:搭建个人知识库(六)- “吃什么”项目实战:从700+菜谱入库到Taro H5端JSON渲染
前端·后端
程序员黑豆2 小时前
AI全栈开发之Java:怎么配置Java环境变量
前端·后端·ai编程
苍何2 小时前
一手实测 Claude Fable 5,手搓了个 Obsidian 的 Codex 插件
后端
逍遥德3 小时前
MQTT教程详解-05.SpringBoot集成mqtt client 性能分析
java·spring boot·spring·mt
点燃大海3 小时前
SpringAI构建智能体
java·spring boot·spring·springai智能体
xier_ran3 小时前
【infra之路】02_RadixAttention与KV_Cache管理
java·spring boot·spring
swipe3 小时前
做多轮对话 Agent,为什么我建议把短期记忆放到 Redis
后端·面试·llm
码客日记3 小时前
Spring Boot 配置文件敏感信息加密(Jasypt 企业级完整方案)
java·spring boot·git