MyBatis之动态SQL&&分页

目录

一、MyBatis动态SQL

        1.1 mybatis的foreach标签

二、模糊查询

三、mybatis对结果集的处理

四、分页查询

        4.1 第三方分页插件

        4.2 集成mybatis进行使用

五、对特殊字符的处理


一、MyBatis动态SQL

        1.1 mybatis的foreach标签

        我们一起要实现mybatis的动态SQL,就要了解他的两个标签:if、forEach

        我们利用in关键词查询的案例来一起看看关于forEach标签的使用;

        首先就是在昨天Leaf发布的文章:MyBatis环境搭建&&测试增删改查__Leaf1217的博客-CSDN博客

里面介绍的插件自动生成的一个配置文件里配置我们要添加的方法配置信息:BookMapper.xml

这里的配置很重要,着重看看forEach标签以及它的属性。 

  

然后在自动生成的方法接口BookMapper.java里面也添加上方法:selectByIn

    //通过in关键字进行查询,讲解foreach标签的使用
    //如果参数 是 非实体类(book、order、...),那么记得加上注解 @param
    //bookIds是对应collection属性的
    List selectByIn(@Param("bookIds") List bidIds);

然后再在我们自己写的实际使用的接口中也添加上:selectByIn

package com.leaf.biz;

import com.leaf.model.Book;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author Leaf
 * @site 2977819715
 * @company 玉渊工作室
 * @create  2022-08-11 1:09
 */
public interface BookBiz {

    int deleteByPrimaryKey(Integer bid);

    Book selectByPrimaryKey(Integer bid);

    List selectByIn(List bidIds);

}

然后我们Alt + Enter,自动补全实现方法:

    @Override
    public List selectByIn(List bidIds) {
        return bookMapper.selectByIn(bidIds);
    }

 再次Alt + Enter,建立一个测试方法进行测试:

    @Test
    public void selectByIn() {
        List bookIds = Arrays.asList(new Integer[]{31, 32, 33, 34});
        bookBiz.selectByIn(bookIds).forEach(System.out::println);
    }

最后我们运行测试:MyBatis之动态SQL&&分页_第1张图片 

我们看到测试结果,查询到了,这就是关于forEach标签的使用,多去看看粘贴的代码。

MyBatis之动态SQL&&分页_第2张图片


二、模糊查询

 2.1 mybatis模糊查询的三种形式

和上一个使用forEach标签测试的方法实现步骤一样;

先把三种方式的配置信息放到BookMapper.xml里面:





然后还是一样的在自动生成的方法接口BookMapper.java里面也添加上三个方法:

    List selectBooksLike1(@Param("bname") String bname);

    List selectBooksLike2(@Param("bname") String bname);

    List selectBooksLike3(@Param("bname") String bname);

然后再在我们自己写的实际使用的接口Bookbiz中也添加上:

    List selectBooksLike1(String bname);

    List selectBooksLike2(String bname);

    List selectBooksLike3(String bname);

然后我们Alt + Enter,自动补全实现方法:

    @Override
    public List selectBooksLike1(String bname) {
        return bookMapper.selectBooksLike1(bname);
    }

    @Override
    public List selectBooksLike2(String bname) {
        return bookMapper.selectBooksLike2(bname);
    }

    @Override
    public List sel

你可能感兴趣的:(mybatis,mybatis,sql,数据库)