欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

springboot植入pagerHelper的超详细教程

程序员文章站 2022-03-19 14:54:39
简介前面个已经讲过mybatis的批量更新操作。批量操作还有时分页查询,针对项目的完善性,来讲解一下分页工具的植入pagerhelper和tk.mybatis使用。其实官网已经有具体代码,代价有空可以...

简介

前面个已经讲过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>

测试样例

springboot植入pagerHelper的超详细教程

点击mybatis-generator:generate即可生成对象和映射文件,具体如上图

一般分页个人喜好建议用jdk8的lambda表达式,如//对应的lambda用法
pageinfo = pagehelper.startpage(1, 10).doselectpageinfo(() -> usermapper.selectgroupby());,
更多请查看官网分页使用方式

总结&反思

基本操作对象,我们不要再手动一个一个的写啦,直接用mybatis插件生成。基本curd不要再自己编写xml,直接用tk.mysql操作即可。一对多情况,分页无法实现谨慎使用

源码地址

到此这篇关于springboot植入pagerhelper的文章就介绍到这了,更多相关springboot植入pagerhelper内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!