mybatis-plus的简单使用


搭建

pom

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.0</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.19</version>
</dependency>

application.yml

server:
  port: 8889
spring:
  datasource:
    url: jdbc:mysql://mysql.sqlpub.com:3306/java0417?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&AllowPublicKeyRetrieval=True
    username: java0417
    password: f345c26699a412e2


mybatis-plus:
  mapper-locations: mapper/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  type-aliases-package: com.example.xiong.entity

代码生成

image-20230306180652311

image-20230306180726894

常用

普通新增

@Test
void insert()&#123;
    Book book = new Book();
    book.setName("测试2");
    bookService.save(book);

    Book book2 = new Book();
    book2.setName("测试3");
    bookService.getBaseMapper().insert(book2);
&#125;

批量新增

@Test
void saveBatch()&#123;
    List<Book> bookList = new ArrayList<>();
    for (int i = 0; i < 3; i++) &#123;
        Book book = new Book();
        book.setName("测试1");
        bookList.add(book);
    &#125;	
    bookService.saveBatch(bookList);
&#125;

基础查询

查询全部

@Test
void list()&#123;
    List<Book> list = bookService.list();
    for (Book book : list)&#123;
        System.out.println(book.getName());
    &#125;
&#125;

根据id查询

@Test
void selectById() &#123;
    // 第一种方式
    SysUser sysUser = sysUserService.getBaseMapper().selectById(1);
    System.out.println(sysUser);
    
    // 第二种方式
    Book byId = bookService.getById(1);
&#125;

查询总数

@Test
    void selectCount() &#123;
        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("user_Id",1);
        Integer integer = sysUserService.getBaseMapper().selectCount(queryWrapper);
        System.out.println(integer);
    &#125;

通过map拼装查询条件

@Test
void selectByMap()&#123;
    Map<String,Object> map = new HashMap<>();
    map.put("user_id",1);
    List<SysUser> sysUsers = sysUserService.getBaseMapper().selectByMap(map);
    System.out.println(sysUsers);
&#125;

分页查询、模糊查询

@Test
void selectMapsPage()&#123;
    Page page = new Page();
    page.setSize(10);
    page.setCurrent(1);
    QueryWrapper<Book> queryWrapper = new QueryWrapper();
    queryWrapper.like("name","同");
    page = bookService.getBaseMapper().selectMapsPage(page, queryWrapper);
    System.out.println(page);
&#125;

查询集合、比较符、排序

@Test
void selectList()&#123;
    /*
        eq 就是 equal等于
        ne 就是 not equal不等于
        gt 就是 greater than大于
        lt 就是 less than小于
        ge 就是 greater than or equal 大于等于
        le 就是 less than or equal 小于等于
         */
    QueryWrapper<Book> queryWrapper = new QueryWrapper<>();
    queryWrapper.lt("id",10)
        .orderByDesc("id");
    List<Book> books = bookService.getBaseMapper().selectList(queryWrapper);
    
    // 第二种方式
    List<Book> bookList = bookService.list(queryWrapper);
    
    System.out.println(books);
&#125;

返回map结合

@Test
void selectMaps()&#123;
    QueryWrapper<Book> queryWrapper = new QueryWrapper<>();
    queryWrapper.lt("id",10)
        .orderByDesc("id");
    List<Map<String, Object>> maps = bookService.getBaseMapper().selectMaps(queryWrapper);
    System.out.println(maps);
&#125;

返回object集合

void selectObjs()&#123;
    List<Object> objects = bookService.getBaseMapper().selectObjs(new QueryWrapper<Book>().lt("id", 10));
    System.out.println(objects);
&#125;

根据id集合查询

List<Integer> list = new ArrayList();
list.add(1);
list.add(2);
List<Book> books = bookService.getBaseMapper().selectBatchIds(list);
System.out.println(books);

查询一个

@Test
void selectOne()&#123;
    // 查询出多条记录会报错
    Book book = bookService.getBaseMapper().selectOne(new QueryWrapper<Book>().eq("id", 4));
    System.out.println(book);
    
    // 第二种方式
    Book book2 = bookService.getOne(new QueryWrapper<Book>().eq("id", 1));
&#125;

分组

@Test
void testIosNotNull()&#123;
    List<Book> books = bookService.getBaseMapper().selectList(new QueryWrapper<Book>()
                                                              .select("name")
                                                              .isNotNull("name").groupBy("name")
                                                              .having("MIN(sales) > &#123;0&#125; AND MAX(sales) < &#123;1&#125;",15,30));
    System.out.println(books);
&#125;

其他


文章作者: 张一雄
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 张一雄 !
  目录