springboot植入pagerHelper的超詳細教程

簡介

前面個已經講過mybatis的批量更新操作。批量操作還有時分頁查詢,針對項目的完善性,來講解一下分頁工具的植入pagerHelper和tk.mybatis使用。其實官網已經有具體代碼,代價有空可以多多參考官網操作。鏈接地址MyBatis-Spring-Boot

技術方案

maven jar導入

查看官方說明引入依賴,如下:

<!--mybatis-->
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>1.3.1</version>
</dependency>
<!--mapper-->
<dependency>
  <groupId>tk.mybatis</groupId>
  <artifactId>mapper-spring-boot-starter</artifactId>
  <version>1.2.4</version>
</dependency>
<!--pagehelper-->
<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper-spring-boot-starter</artifactId>
  <version>1.2.3</version>
</dependency>

maven plugin配置

引入完jar依賴之後,配置plugin插件,插件時根據maven來識別的,可以直接拷貝官網的配置即可,如下:

<plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.2</version>
        <configuration>
          <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
          <overwrite>true</overwrite>
          <verbose>true</verbose>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
          </dependency>
          <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-generator</artifactId>
            <version>1.0.0</version>
          </dependency>
        </dependencies>
      </plugin>

配置generatorConfig.xml

根據自己喜歡,可以定制化配置generatorConfig.xml,下面是我個人基本配置,更多配置說明,請查看官方說明MyBatis Generator 詳解

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
    PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
    "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
  <properties resource="generator/application-dev.properties"/>

  <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
    <property name="beginningDelimiter" value="`"/>
    <property name="endingDelimiter" value="`"/>
    <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
      <property name="mappers" value="com.lgh.common.util.MyMapper"/>
    </plugin>

    <jdbcConnection driverClass="${spring.datasource.driver-class-name}"
            connectionURL="${spring.datasource.url}"
            userId="${spring.datasource.username}"
            password="${spring.datasource.password}">
    </jdbcConnection>

    <javaModelGenerator targetPackage="com.lgh.model" targetProject="src/main/java"/>

    <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>

    <javaClientGenerator targetPackage="com.lgh.mapper" targetProject="src/main/java"
               type="XMLMAPPER"/>

    <!-- 數據庫表 以及實體類命名 -->
    <!-- <table schema="CL_DEMO" tableName="tb_user" domainObjectName="User"
        enableCountByExample="false" enableDeleteByExample="false"
        enableSelectByExample="false" enableUpdateByExample="false"
        selectByExampleQueryId="false" />
    <table schema="CL_DEMO" tableName="tb_role" domainObjectName="Role"
        enableCountByExample="false" enableDeleteByExample="false"
        enableSelectByExample="false" enableUpdateByExample="false"
        selectByExampleQueryId="false" />
    <table schema="CL_DEMO" tableName="tb_menu" domainObjectName="Menu"
        enableCountByExample="false" enableDeleteByExample="false"
        enableSelectByExample="false" enableUpdateByExample="false"
        selectByExampleQueryId="false" />
    <table schema="CL_DEMO" tableName="tb_resource" domainObjectName="Resource"
        enableCountByExample="false" enableDeleteByExample="false"
        enableSelectByExample="false" enableUpdateByExample="false"
        selectByExampleQueryId="false" />
    <table schema="CL_DEMO" tableName="user_role" domainObjectName="UserRole"
        enableCountByExample="false" enableDeleteByExample="false"
        enableSelectByExample="false" enableUpdateByExample="false"
        selectByExampleQueryId="false" />
    <table schema="CL_DEMO" tableName="role_menu" domainObjectName="RoleMenu"
        enableCountByExample="false" enableDeleteByExample="false"
        enableSelectByExample="false" enableUpdateByExample="false"
        selectByExampleQueryId="false" />
    <table schema="CL_DEMO" tableName="menu_resource" domainObjectName="MenuResource"
        enableCountByExample="false" enableDeleteByExample="false"
        enableSelectByExample="false" enableUpdateByExample="false"
        selectByExampleQueryId="false" />
    <table schema="CL_DEMO" tableName="role_resource" domainObjectName="RoleResource"
        enableCountByExample="false" enableDeleteByExample="false"
        enableSelectByExample="false" enableUpdateByExample="false"
        selectByExampleQueryId="false" />
    <table schema="CL_DEMO" tableName="logon" domainObjectName="Logon"
        enableCountByExample="false" enableDeleteByExample="false"
        enableSelectByExample="false" enableUpdateByExample="false"
        selectByExampleQueryId="false" />-->
  </context>
</generatorConfiguration>

測試樣例

在這裡插入圖片描述

點擊mybatis-generator:generate即可生成對象和映射文件,具體如上圖

一般分頁個人喜好建議用jdk8的lambda表達式,如//對應的lambda用法
pageInfo = PageHelper.startPage(1, 10).doSelectPageInfo(() -> userMapper.selectGroupBy());,
更多請查看官網分頁使用方式

總結&反思

基本操作對象,我們不要再手動一個一個的寫啦,直接用mybatis插件生成。基本curd不要再自己編寫xml,直接用tk.mysql操作即可。一對多情況,分頁無法實現謹慎使用

源碼地址

github

到此這篇關於springboot植入pagerHelper的文章就介紹到這瞭,更多相關springboot植入pagerHelper內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: