zoukankan      html  css  js  c++  java
  • 学成在线(第7天)课程管理实战

     我的课程

    课程添加完成后可通过我的课程进入课程修改页面,此页面显示我的课程列表,如下图所示,可分页查询。
    注意:由于课程图片服务器没有搭建,这里在测试时图片暂时无法显示。

     上边的查询要实现分页、会存在多表关联查询,所以建议使用mybatis实现我的课程查询。

    PageHelper

    PageHelper是mybatis的通用分页插件,通过mybatis的拦截器实现分页功能,拦截sql查询请求,添加分页语句,
    最终实现分页查询功能。
    我的课程具有分页功能,本项目使用Pagehelper实现Mybatis分页功能开发,由于本项目使用springboot开发,在
    springboot上集成pagehelper(https://github.com/pagehelper/pagehelper-spring-boot
    PageHelper的使用方法及原理如下:
    在调用dao的service方法中设置分页参数:PageHelper.startPage(page, size),分页参数会设置在ThreadLocal中

    PageHelper 在mybatis执行sql前进行拦截,从ThreadLocal取出分页参数,修改当前执行的sql语句,添加分页
    sql。
    最后执行添加了分页sql的sql语句,实现分页查询。

     PageHelper配置

    1)添加依赖

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper‐spring‐boot‐starter</artifactId>
        <version>1.2.4</version>
    </dependency>

    2)配置pageHelper

    在application.yml中配置pageHelper操作的数据库类型:

    pagehelper:
      helper‐dialect: mysql

    PageHelper测试

    1)定义mapper 接口

    import com.github.pagehelper.Page;
    import com.xuecheng.framework.domain.course.CourseBase;
    import com.xuecheng.framework.domain.course.ext.CourseInfo;
    import com.xuecheng.framework.domain.course.request.CourseListRequest;
    import org.apache.ibatis.annotations.Mapper;
    @Mapper
    public interface CourseMapper {
        CourseBase findCourseBaseById(String id);
        Page<CourseInfo> findCourseListPage(CourseListRequest courseListRequest);
    }

    2)定义mapper.xml映射文件

    <select id="findCourseListPage" resultType="com.xuecheng.framework.domain.course.ext.CourseInfo"
            parameterType="com.xuecheng.framework.domain.course.request.CourseListRequest">
        SELECT
        course_base.*,
        (SELECT pic FROM course_pic WHERE courseid = course_base.id) pic
        FROM
        course_base
    </select>

    3)测试Dao

    //测试分页
    @Test
    public void testPageHelper(){
        PageHelper.startPage(1, 10);//查询第一页,每页显示10条记录
        CourseListRequest courseListRequest = new CourseListRequest();
        Page<CourseInfo> courseListPage = courseMapper.findCourseListPage(courseListRequest);
        List<CourseInfo> result = courseListPage.getResult();
        System.out.println(courseListPage);
    }

    测试前修改日志级别为debug,并跟踪运行日志,发现sql语句中已经包括分页语句。

     

  • 相关阅读:
    「应用界面美化」DevExpress Winform数据网格如何绑定数据
    使用Northwind数据库的 .NET Core应用你了解多少?
    如何将现有的WinForms / WPF项目转换为.NET Core?这里有你想要的答案!
    php 微信分享
    连表查询取最新时间
    filesort
    项目执行shell脚本
    redis做消息队列
    es pdf 文档
    vim 常用工具
  • 原文地址:https://www.cnblogs.com/anan-java/p/12247601.html
Copyright © 2011-2022 走看看