Mybatis扩展

Mybatis扩展

1.批量扫描mapper

在之前每创建一个mapper,就需要在mybatis-config.xml 文件中,注册该mapper。

<mappers>
    <mapper resource="mapper/EmployeeMapper.xml"/>
</mappers>

可以在mappers标签中使用package标签,进行包扫描

<mappers>
    <package name="com.ztone.mapper"/>
</mappers>

这样每次在com.ztone.mapper 包下创建mapper就不用注册了

这种方式的要求:

  • mapper 的xml文件和接口文件命名必须xiangtong

  • 最终打包后的位置要一致,也就是都在 com.ztone.mapper 下,想要保证这点有两种方式

    • 将xml文件放在java下的包中,与接口放在一个地方,但是需要在mybatis-config中设置maven的打包配置,否则xml文件不会打包

      <build>
          <resources>
              <resource>
                  <directory>src/main/java</directory>
                  <includes>
                      <include>**/*.*</include>
                  </includes>
              </resource>
          </resources>
      </build>
    • 第二种方式就是在 resources文件夹下创建与 接口存放位置相同的包,也就是com.ztone.mapper

      这里需要注意:在resources文件下创建文件夹,分层时不能用 ” . “ 分隔,需要用 ” / “ 分隔

 

 

2.PageHelper分页插件

在sql中进行分页,需要用limit 关键字

select * from user limit 0,2;

从第0个开始查询,每一页展示两个

使用插件,不需要自己写 limit,要求是不能用 ” ; “ 结尾,因为limit会加在分号后面,导致sql错误

 

步骤:

  1. 引入pagehelper 依赖

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.1.11</version>
    </dependency>
  2. 在mybatis-config.xml 文件中配置分页插件

    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <property name="helperDialect" value="mysql"/>
        </plugin>
    </plugins>
  3. 使用

    先设置分页数据调用PageHelper的 startPage() 方法

    然后执行查询语句,返回结果后,将查询数据封装到一个PageInfo的分页实体类中

    public void test_02(){
        EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
        PageHelper.startPage(2,2);
        List<Employee> employees = mapper.queryAll();
        PageInfo<Employee> pageInfo = new PageInfo<>(employees);
        //当前页的数据
        List<Employee> list = pageInfo.getList();
        //获取总页数
        int pages = pageInfo.getPages();
        //获取总条数
        long total = pageInfo.getTotal();
    }

    需要注意的是:不能将两条查询装到一个 分页区

     

3.逆向工程

自动生成单表的实体类、接口文件、接口的xml文件

用到的 插件是 MybatisX

posted @ 2024-08-14 16:51  GrowthRoad  阅读(13)  评论(0编辑  收藏  举报