首页 > 其他分享 >mybatis-puls的使用

mybatis-puls的使用

时间:2023-07-29 21:44:54浏览次数:33  
标签:name void userMapper page Test 使用 mybatis public puls

MyBatisPlus简介

  1. 无侵入:只做增强不做改变,不会对现有工程产生影响
  2. 强大的CRUD操作:内置通用的Mapper,少量配置即可实现CRUD操作
  3. 支持Lambda:编写查询条件无需担心字段写错
  4. 支持主键自动生成
  5. 内置分页插件

所需的依赖

  <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.4.3</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.16</version>
</dependency>
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>

标准的CRUD操作

  1. 首先定义对应的实体类
  2. 创建对应的Mapper接口,让其继承于BaseMapper<>
  3. 调用内置的CRUD方法
功能 MP接口
新增 int insert(T t)
删除 int deleteById(Serializable id)
修改 int updateById(T t)
根据id查询 T selectById(Serializable id)
查询全部 List selectList()
分页查询 IPage selectPage(IPage page)
按条件查询 IPage selectPage(Wrapper queryWrapper)
  1. 实体类的编写
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserInfo {
    private int id;
    private String name;
    private int age;

    public UserInfo(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

  1. Mapper接口的编写
@Mapper
public interface UserMapper extends BaseMapper<UserInfo> {
    
}
  1. 测试类的编写
@SpringBootTest
class Demo1ApplicationTests {

    @Autowired
    public UserMapper userMapper;
    @Test
    public void save(){
        UserInfo user = new UserInfo("jack",20);
        userMapper.insert(user);
    }
    @Test
    public void delete(){
        userMapper.deleteById(3);
    }
    @Test
    public void update(){
        UserInfo userInfo = new UserInfo();
        userInfo.setName("wang");
        userInfo.setId(1);
        userMapper.updateById(userInfo);
    }
    @Test
    public void getOne(){
        System.out.println(userMapper.selectById(1));
    }
    @Test
    public void getAll() {
        System.out.println(userMapper.selectList(null));
    }

}

MyBatisPlus的调试日志

spring:
  datasource:
      url: jdbc:mysql:///mybatis?serverTimeZone=UTC
      username: root
      password: 123456
      driver-class-name: com.mysql.cj.jdbc.Driver
      type: com.alibaba.druid.pool.DruidDataSource
  main:
    banner-mode: off #关闭SpringBoot 的banner
server:
  port: 8080 # 设置服务器的端口号
logging:
  level:
    root: error # 设置SpringBoot的日志为只有报错的时候打印日志


mybatis-plus:
  global-config:
    db-config:
      table-prefix: # 添加表名的前缀
      id-type: auto # 默认的id是采用雪花算法,auto后就是id自增了
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #标准日志输出

MybatisPlus分页操作

  1. 创建MybatisPlus配置类
@Configuration
public class MyBatisPlusConfigration {
	//设置分页拦截器
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}
  1. 编写测试方法
 @Test
    void pageQuery(){
        IPage page = new Page(1,3);
        userMapper.selectPage(page,null);
        System.out.println(page.getPages());//总页数
        System.out.println(page.getCurrent());//当前页码
        System.out.println(page.getSize());//当前页的数量
        System.out.println(page.getTotal());//总数
        System.out.println(page.getRecords());//返回的集合
    }

MyBatisPlus条件查询

 @Test
    public void whereQuery(){
        String name = "j";
        LambdaQueryWrapper<UserInfo> queryWrapper = new LambdaQueryWrapper();
        /*
        * param 1: 判断字符是否为null值,可以省略,一但为null那么sql的模糊查询--> %null%
        * param 2: 根据那个字段进行匹配
        * parma 3: 模糊查询的内容
        */
        queryWrapper.like(Strings.isNotEmpty(name),UserInfo::getName,name);
        userMapper.selectList(queryWrapper);
    }

标签:name,void,userMapper,page,Test,使用,mybatis,public,puls
From: https://www.cnblogs.com/-xyk/p/17590606.html

相关文章

  • PortableGit(git绿色版)使用笔记
    配置文件全局配置文件:%HOMEPATH%\.gitconfig;系统配置文件:(PortableGit)安装路径\etc\gitconfig。常用命令初始化本地仓库:gitinit;克隆远程仓库:gitclone<远程仓库地址>;暂存提交文件:gitadd<文件名>;将暂存文件提交到本地仓库:gitcommit[-m]<注释内容>。拉取分支:git......
  • 使用WGCLOUD监测安卓(Android)设备的运行状态
    WGCLOUD是一款开源运维软件,除了能监测各种服务器、主机、进程应用、端口、接口、docker容器、日志、数据等资源WGCLOUD还可以监测安卓设备,比如安卓手机、安卓设备等我们只要下载对应的安卓客户端,部署运行即可详细说明:https://www.wgstart.com/help/docs63.html......
  • 使用clip-path将 GIF 绘制成跳动的字母
    前言之前看到过一个有趣的CSS效果,今天我们也来实现一遍,将动图GIF通过clip-path绘制成一个个跳动的字母。效果如下:GIF随便找的,嗯?这不是重点,重点是下面的实现过程,别被GIF吸引了。如果这篇文章有帮助到你,❤️关注+点赞❤️鼓励一下作者,文章公众号首发,关注前端南玖第一时间获取最新文章~绘......
  • C++中fork函数的使用及原理
    C++中fork函数的使用及原理,在C++中,fork函数用于创建一个新的进程称为子进程,该进程与原始进程几乎完全相同。fork函数的基本概况fork()函数调用成功之后,会有两个返回值。当前进程,也就是父进程返回子进程的pid,子进程返回0。如果函数调用错误,返回为-1。#include<stdio.h>#include......
  • 使用 OpenCV 进行图像模糊度检测(拉普拉斯方差方法)
    写在前面工作中遇到,简单整理人脸识别中,对于模糊程度较高的图像数据,识别率低,错误率高。虽然使用AdaFace模型,对低质量人脸表现尤为突出。但是还是需要对模糊程度高的图像进行丢弃处理当前通过阈值分类,符合要求的进行特性提取实际应用中,可以维护一个质量分数比如由模糊程度,图片字......
  • 如何在 Django 中使用 MVT 创建一个基本项目?
    Django是一种用Python编写的流行Web框架,遵循Model-View-Template(MVT)架构模式。MVT是众所周知的Model-View-Controller(MVC)模式的变体,它提供了一种构建Web应用程序的结构化方法。了解如何在Django中使用MVT创建基本项目是开发健壮且可扩展的Web应用程序的基本步骤。在本......
  • 《面试1v1》大厂的Kafka使用场景
    面试官:嗨,候选人!今天我们来聊聊Kafka的使用场景,你对Kafka有了解吗?候选人:当然!Kafka是一个高吞吐量的分布式消息队列,被广泛应用于大数据处理和实时数据流处理。它可以帮助我们解决各种有趣的问题!面试官:太好了!那你能给我举几个Kafka的使用场景吗?候选人:当然!首先,Kafka非常适合用于日......
  • 使用StoryBoard设置Scrollview的横向滚动不用一行代码
    1).创建一个空工程Single类型的工程,然后打开故事版(StoryBoard)在ViewController上添加scrollview2).然后对scrollview添加约束,上下左右全部都是0就可以(注意:在添加上下左右约束的时候一定要取消Constraintomargins,否则添加完的约束会出现左右各缺少20像素的边距)3).添加完......
  • TypeScript 泛型接口的一个具体使用例子
    有下面这段代码:以上代码是一个TypeScript定义的接口(interface),用于表示一个通用的实体状态(EntityState)。让我们逐行解释这段代码的含义,并了解其中使用了哪些TypeScript的语法特性:exportinterfaceEntityState<T>{这行代码定义了一个导出的接口EntityState<T>,其中<T>......
  • 为什么使用 CDN 需要 Angular 应用正确返回 HTTP 200 和 404 状态码
    CDN(ContentDeliveryNetwork)是内容分发网络,它的目的是通过在各地建立节点缓存数据,使用户可以就近获取数据,从而提高数据获取的速度和稳定性。Angular是一种用于构建客户端应用的开发平台。它带来了一种新的方式来构建应用,完全是在浏览器中运行,无需借助任何后端服务。HTTP200......