Mybatis擴充套件

GrowthRoad發表於2024-08-14

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

相關文章