当前位置: 首页 > news >正文

Mybatis-plus 简单使用,mybatis-plus 分页模糊查询报500 的错

一、mybtis-plus配置下载
MyBatis-Plus 是一个 Mybatis 增强版工具,在 MyBatis 上扩充了其他功能没有改变其基本功能,为了简化开发提交效率而存在。
具体的介绍请参见官方文档。
官网文档地址:mybatis-plus

  1. 添加mybatis-plus依赖
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version>
</dependency>
  1. 添加MyBatisPlusConfig配置文件

config包中添加MyBatisPlusConfig配置文件,将原来在mapper中的@mapper注解取消,继承上BaseMapper泛型接口即可。
Mybatis-Plus里的BaseMapper接口,自带crud功能,继承了BaseMapper接口的接口.。

在这里插入图片描述
代码如下:

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
@MapperScan("com.example.demo.demos.web.demo.mapper")
public class MyBatisPlusConfig {//配置分页插件@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();//数据库类型是MySql,因此参数填写DbType.MYSQLinterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}}

在这里插入图片描述

mapper 中如下配置
在这里插入图片描述 3. yml 中写如下配置

在这里插入图片描述

mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

二、mybtis-plus实现增删改查

  1. 数据增加或修改

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

结果:
修改:
在这里插入图片描述
在这里插入图片描述
注意映射表不要瞎加字段否则容易出现异常
Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘page_num’ in ‘field list’

所有代码
config

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
@MapperScan("com.example.demo.demos.web.demo.mapper")
public class MyBatisPlusConfig {//配置分页插件@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();//数据库类型是MySql,因此参数填写DbType.MYSQLinterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}}

controller


package com.example.demo.demos.web.demo.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.demos.web.demo.entity.UserEntity;
import com.example.demo.demos.web.demo.mapper.UserMapper;
import com.example.demo.demos.web.demo.service.UserService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import java.util.HashMap;
import java.util.List;
import java.util.Map;@RestController
@RequestMapping("user")
public class UserController {// @Autowired// private UserMapper userMapper;@Autowiredpublic UserService userService;
/*        @GetMapping("/")public List<UserEntity> index(){return userMapper.findAll();}*///使用mybtis-plus实现查询所有数据@GetMapping("/")public List<UserEntity> findAll(){return userService.list();}/* @PostMapping("/add")//这里做了一个单纯的添加的示例,使用的是mapper中的insert方法public Integer save(@RequestBody UserEntity userEntity){return userService.save(userEntity);}*//*        @DeleteMapping("/{id}")public Integer deleteById(@PathVariable Integer id){return  userService.deleteById(id);}*///使用mybtis-plus实现删除@DeleteMapping("/{id}")public boolean deleteById(@PathVariable Integer id){return  userService.removeById(id);}@PostMapping("/add")//使用mybtis-plus,注意这里返回的是boolean型public Boolean save(@RequestBody UserEntity user) {return userService.saveUser(user);}//分页查询//接口路径user/page?pageNum=1&pageSize=10//RequestParam接受前台传过来的第几页,每页显示数
/*    @GetMapping("/page")public Map<String,Object> findPage(@RequestParam Integer pageNum,@RequestParam Integer pageSize){pageNum=(pageNum-1)*pageSize;List<UserEntity> data=userService.selectPage(pageNum,pageSize);Integer total=userMapper.selectTotal();Map<String,Object> res=new HashMap<>();res.put("data",data);res.put("total",total);return res;}*///使用mybtis-plus实现根据ID查找记录@GetMapping("/{id}")public UserEntity findOne(@PathVariable Integer id){return userService.getById(id);}//使用mybtis-plus实现模糊查询并分页@GetMapping("/page")public IPage<UserEntity> findPage(@RequestParam Integer pageNum,@RequestParam Integer pageSize,@RequestParam(defaultValue = "") String username,@RequestParam(defaultValue = "") String nickname,@RequestParam(defaultValue = "") String address){IPage<UserEntity> page=new Page<>(pageNum,pageSize);QueryWrapper<UserEntity> queryWrapper=new QueryWrapper<>();queryWrapper.like("username",username);queryWrapper.like("nickname",nickname);queryWrapper.like("address",address);return userService.page(page,queryWrapper);}}

entity

package com.example.demo.demos.web.demo.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName(value="sys_user")
public class UserEntity {@TableId(value = "id",type = IdType.AUTO)private Integer id;
/*    private Integer pageNum;private Integer pageSize;*/private String username;private String password;private String email;private String phone;private String nickname;private String address;private String create_time;private String avatar;private String role;}

mapper

package com.example.demo.demos.web.demo.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.demos.web.demo.entity.UserEntity;
import org.apache.ibatis.annotations.*;import java.util.List;//@Mapper 前面配置文件中已经配置 这个注解可以注销但是要继承接口
public interface UserMapper extends BaseMapper<UserEntity> {/*   @Select("select * from sys_user limit #{pageNum},#{pageSize}")List<UserEntity> selectPage(@Param("pageNum") Integer pageNum,@Param("pageSize")  Integer pageSize);//@Select("select * from sys_user limit #{pageNum},#{pageSize}")@Select("select * from sys_user")List<UserEntity> findAll();@Insert("insert into sys_user(username,password,email,phone,nickname,address,avatar,role) " +"VALUES(#{username},#{password},#{email},#{phone},#{nickname},#{address},#{avatar},#{role});")//这里只是做测试使用int insert(UserEntity userEntity);int update(UserEntity userEntity);@Delete("delete from sys_user where id=#{id}")int deleteById(@Param("id") Integer id);*/// 记录总数/* @Select("select count(*) from sys_user")Integer selectTotal();
*/}

service

package com.example.demo.demos.web.demo.service;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.demos.web.demo.entity.UserEntity;
import com.example.demo.demos.web.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserService extends ServiceImpl<UserMapper, UserEntity> {// @Autowired// private UserMapper userMapper;/* public int save(UserEntity userEntity){//如果user没有id则表明是新增if(userEntity.getId()==null){return userMapper.insert(userEntity);}//否则就是更新else {return userMapper.update(userEntity);}}*/public Boolean saveUser(UserEntity userEntity){return saveOrUpdate(userEntity);}/* public Integer deleteById(Integer id) {return userMapper.deleteById(id);}*/// 分页查找/* public List selectPage(Integer pageNum, Integer pageSize) {return userMapper.selectPage(pageNum,pageSize);}*/}

项目架构
在这里插入图片描述

相关文章:

Mybatis-plus 简单使用,mybatis-plus 分页模糊查询报500 的错

一、mybtis-plus配置下载 MyBatis-Plus 是一个 Mybatis 增强版工具&#xff0c;在 MyBatis 上扩充了其他功能没有改变其基本功能&#xff0c;为了简化开发提交效率而存在。 具体的介绍请参见官方文档。 官网文档地址&#xff1a;mybatis-plus 添加mybatis-plus依赖 <depe…...

2022 年 12 月青少年软编等考 C 语言三级真题解析

目录 T1. 鸡兔同笼思路分析T2. 猴子吃桃思路分析T3. 括号匹配问题T4. 上台阶思路分析T5. 田忌赛马T1. 鸡兔同笼 一个笼子里面关了鸡和兔子(鸡有 2 2 2 只脚,兔子有 4 4 4 只脚,没有例外)。已经知道了笼子里面脚的总数 a a a,问笼子里面至少有多少只动物,至多有多少只…...

webpack 题目

文章目录 webpack 中 chunkHash 和 contentHash 的区别loader和plugin的区别&#xff1f;webpack 处理 image 是用哪个 loader&#xff0c;限制 image 大小的是...&#xff1b;webpack 如何优化打包速度 webpack 中 chunkHash 和 contentHash 的区别 主要从四方面来讲一下区别&…...

【MySQL】视图详解

视图详解 一、视图的概念二、视图的常用操作2.1创建视图2.2查询视图2.3修改视图2.4 删除视图2.5向视图中插入数据 三、视图的检查选项3.1 cascaded&#xff08;级联 &#xff09;3.2 local(本地) 四、视图的作用 一、视图的概念 视图&#xff08;View&#xff09;是一种虚拟存…...

第一节:ORIN NX介绍与基于sdkmanager的镜像烧录(包含ubuntu文件系统/CUDA/OpenCV/cudnn/TensorRT)

ORIN NX技术参数 Orin NX版本对比 如上图所示,ORIN NX官方发布的版本有两个版本一个版本是70TOPS算力,DDR为8GB的版本低配版本,一个是100TOPS算法,DDR为16GB的高配版本。 Orin NX的外设框图 两个版本除了GPU和DDR的差距外,外设基本上没有区别,丰富的外设接口,后续开发…...

2024-12-04OpenCV视频处理基础

OpenCV视频处理基础 OpenCV的视频教学&#xff1a;https://www.bilibili.com/video/BV14P411D7MH 1-OpenCV视频捕获 在 OpenCV 中&#xff0c;cv2.VideoCapture() 是一个用于捕获视频流的类。它可以用来从摄像头捕获实时视频&#xff0c;或者从视频文件中读取帧。以下是如何使用…...

D89【python 接口自动化学习】- pytest基础用法

day89 pytest的setup&#xff0c;setdown详解 学习日期&#xff1a;20241205 学习目标&#xff1a;pytest基础用法 -- pytest的setup&#xff0c;setdown详解 学习笔记&#xff1a; setup、teardown详解 模块级 setup_module/teardown_module 开始于模块始末&#xff0c;生…...

七、docker registry

七、docker registry 7.1 了解Docker Registry 7.1.1 介绍 registry 用于保存docker 镜像&#xff0c;包括镜像的层次结构和元数据。启动容器时&#xff0c;docker daemon会试图从本地获取相关的镜像&#xff1b;本地镜像不存在时&#xff0c;其将从registry中下载该镜像并保…...

FlightGear+MATLAB+飞行手柄实现实时飞控视景系统

文章目录 一、软件配置二、FlightGearMATLAB联合仿真第一步 复制文件第二步 新建文件夹第三步 打开demo第四步 demo说明第五步 打开Simulink第六步 连接FlightGear第七步 设置FlightGear第八步 生成FlightGear连接文件FlightGear的设置Network的设置File的设置生成.bat文件 第九…...

深入 Java 基础 XML:高级特性与最佳实践

在上一篇文章中&#xff0c;我们对 Java 基础 XML 有了一个初步的认识&#xff0c;了解了 XML 的基本结构以及在 Java 中常见的解析方式。今天&#xff0c;我们将进一步深入探讨 Java 与 XML 的结合&#xff0c;包括一些高级特性和最佳实践。 一、XML 命名空间 在复杂的 XML …...

【论文阅读】Fifty Years of the ISCA: A Data-Driven Retrospective

学习体会&#xff1a; ISCA会议近五十年文章分析, 了解论文热点方向, 处理器依旧是热点! AI和并行是大趋势, 做XPU相关目前来说还是热点~ 摘录自原文 摘录: 数据来源和分析方法&#xff1a; 作者收集了 ACM 数字图书馆中所有 ISCA 论文&#xff0c;并使用 DBLP、Google Schol…...

TVbox源贡献指南

欢迎各路大佬踊跃提PR&#xff0c;分享爬虫代码。 源码仓库地址 https://github.com/lushunming/AndroidCatVodSpider 快速开始 本工程是一个完整的AndroidStudio工程&#xff0c;请你用AS打开编辑。 工程调试完毕后要需要导出生成jar文件配合软件使用&#xff0c;执行根目…...

qt数据类型定义(包含签名)

先推荐一个处理markdown表格的网站&#xff0c;超级好用&#xff1a;markdown表格处理&#xff0c;我就是用这个表格处理的excel中的数据上传。 下表整理了数据类型的值范围、签名、qt如何定义等内容。 类型范围/子类型dbus签名qt支持的签名qt类型定义方式转换为variantint8(…...

docker逃逸总结

一、 检查是否在docker容器中 通过以下两个地方来判断 # 是否存在此文件 ls -al /.dockerenv# 在其中是否包含docker字符串 cat /proc/1/cgroup除了上面两种外还有其他方式判断&#xff0c;如检测mount、fdisk -l查看硬盘 、判断PID 1的进程名等也可用来辅助判断。 容器逃逸…...

MySql:表的操作

目录 创建表 查看创建表时的信息 查看表的结构描述 删除一张表 修改表 创建表 CREATE TABLE [IF NOT EXISTS] table_name (field1 datatype,field2 datatype,field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; field 表示列名 datatype 表示…...

LVGL9 开关控件 (lv_switch) 使用指南

文章目录 前言主体1. **控件概述**2. **控件的样式和组成部分**3. **使用控件**改变开关状态 4. **事件处理**5. **按键支持**6. **示例代码** 总结 前言 lv_switch 是 LittlevGL 提供的一个开关控件&#xff0c;外观类似一个小型滑块&#xff0c;常用于实现开关功能&#xff…...

fastadmin 登录退出忽略中间提示页面

背景 研究了一圈CMS&#xff0c;从fastadmin、easyadmin、buildadmin、onethink等等几乎所有的框架CMS&#xff0c;当然也包括若依。 最后&#xff0c;根据当前项目综合考虑&#xff0c;还是选择的fastadmin&#xff1a; 预算经济实惠、维护成本低&#xff1b;工期端&#x…...

游戏引擎学习第36天

仓库 :https://gitee.com/mrxiao_com/2d_game 回顾之前的内容 在这个程序中&#xff0c;目标是通过手动编写代码来从头开始制作一个完整的游戏。整个过程不使用任何库或现成的游戏引擎&#xff0c;这样做的目的是为了能够全面了解游戏执行的每一个细节。开发过程中&#xff0…...

准确率99.9%的离线IP地址定位库 ip2region - python 示例

简介&#xff1a;ip2region是一个离线IP地址定位库和IP定位数据管理框架&#xff0c;10微秒级别的查询效率&#xff0c;提供了众多主流编程语言的 xdb 数据生成和查询客户端实现。号称准确率99.9%的开源离线IP地址定位库。 历史攻略&#xff1a; Python&#xff1a;暴力破解密…...

wordpress网站使用Linux宝塔面板和SQL命令行导入导出超过50M限制的数据库

wordpress网站使用Linux宝塔面板添加mysql数据库&#xff0c;使用phpMyAdmin工具导入sql数据库文件&#xff0c;会有最大限制50M。即使把sql数据库文件压缩为gzip或zip压缩包&#xff0c;压缩包也超过50M&#xff0c;该怎么办&#xff1f;怎样导入超过50M数据库呢&#xff1f; …...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发&#xff0c;采用现代化的Web技术&#xff0c;为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## &#x1f4cb; 系统概述 ### &#x1f3af; 系统定…...

Spring Boot + MyBatis 集成支付宝支付流程

Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例&#xff08;电脑网站支付&#xff09; 1. 添加依赖 <!…...

加密通信 + 行为分析:运营商行业安全防御体系重构

在数字经济蓬勃发展的时代&#xff0c;运营商作为信息通信网络的核心枢纽&#xff0c;承载着海量用户数据与关键业务传输&#xff0c;其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级&#xff0c;传统安全防护体系逐渐暴露出局限性&a…...