模糊查询结合分页查询

本文描述了前端通过搜索框输入部分书名,后端使用MybatisPlus框架结合MySQL数据库进行模糊查询并分页返回相关书籍信息的过程。Controller层负责接收参数和调用Service,ServiceImpl处理分页逻辑,Mapper层执行SQL查询。
摘要由CSDN通过智能技术生成

功能预期:

        前端通过搜索框输入,需要查询的书籍名的部分文字。

        后端根据该段文字,到数据库模糊查询与该段文字相关书籍信息,通过列表返回。

实现环境:

        若依框架、Mybatis Plus、MySQL

Controller层:

    //根据书名分页查询
    @ApiOperation("书名查询")
    @GetMapping("/bookName/{bookName},{pageNum},{pageSize}")
    public TableDataInfo selectBookNameList(@PathVariable("bookName") String bookName,@PathVariable("pageNum") Integer pageNum,@PathVariable("pageSize") Integer pageSize){

        List<MsBookAuthorVo> msBookAuthorVos=iMsBookService.selectBookName(bookName,pageNum,pageSize);

        return getDataTable(msBookAuthorVos);
    }

service层:

//分页查询:书名
    List<MsBookAuthorVo> selectBookName(String bookName,Integer pageNum,Integer pageSize);

 serviceImpl实现类:

    //分页查询:书名
    @Override
    public List<MsBookAuthorVo> selectBookName(String bookName,Integer pageNum,Integer pageSize) {

        PageUtils.startPage(pageNum,pageSize);

        List<MsBookAuthorVo> msBookAuthorVos=msBookMapper.selectBookName(bookName);

        return msBookAuthorVos;
    }

Mapper层:

//模糊、分页查询:书名
    List<MsBookAuthorVo> selectBookName(String bookName);

Mapper.xml:

    <resultMap id="bookListBybName" type="com.mashang.novel.domain.vo.MsBookAuthorVo">
        <id property="bookId" column="bookId"></id>
        <result property="bookName" column="bookName"></result>
        <result property="synopsis" column="synopsis"></result>
        <result property="authorId" column="authorId"></result>
        <result property="authorName" column="authorName"></result>
    </resultMap>
    <select id="selectBookName" resultMap="bookListBybName">
        SELECT
            b.book_id AS bookId,
            b.book_name AS bookName,
            b.synopsis AS synopsis,
            b.author_id AS authorId,
            a.author_name AS authorName
        FROM
            ms_book AS b
        LEFT JOIN ms_author AS a ON a.author_id = b.author_id
        WHERE
            b.book_name LIKE CONCAT(CONCAT('%',#{bookName}), '%')
    </select>

总结:

controller层:只负责接收参数及调用Service接口方法,

serviceImpl实现类:则根据接收到的分页数据插入Mapper.xml的SQL语句尾部实现分页,为数据库节省查询资源。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值