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

MyBatis通用Mapper和PageHelper的过程详解

程序员文章站 2022-08-07 23:31:43
如果项目中使用到了mybatis框架,那么使用通用mapper和pagehelper分页插件将极大的简化我们的操作。通用mapper可以简化对单表的crud操作,pagehelper分页插件可以帮我们...

如果项目中使用到了mybatis框架,那么使用通用mapper和pagehelper分页插件将极大的简化我们的操作。通用mapper可以简化对单表的crud操作,pagehelper分页插件可以帮我们自动拼接分页sql,并且可以使用mybatis geneator来自动生成实体类,mapper接口和mapper xml代码,非常的方便。插件地址及作者链接 。

引入依赖

这里使用spring boot来构建,可参考spring-boot中使用mybatis.html搭建一个spring boot + mybatis的框架,然后在pom中引入:

<!-- 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.1.5</version>
</dependency>
<!-- pagehelper 分页插件 -->
<dependency>
  <groupid>com.github.pagehelper</groupid>
  <artifactid>pagehelper-spring-boot-starter</artifactid>
  <version>1.2.3</version>
</dependency>

接着在pom中配置mybatis geneator:

<build>
  <plugins>
    <plugin>
      <groupid>org.mybatis.generator</groupid>
      <artifactid>mybatis-generator-maven-plugin</artifactid>
      <version>1.3.5</version>
      <dependencies>
        <dependency>
          <!-- 数据库连接驱动 -->
          <groupid>com.oracle</groupid>
          <artifactid>ojdbc6</artifactid>
          <version>6.0</version>
        </dependency>
        <dependency>
          <groupid>tk.mybatis</groupid>
          <artifactid>mapper</artifactid>
          <version>3.4.0</version>
        </dependency>
      </dependencies>
      <executions>
        <execution>
          <id>generate mybatis artifacts</id>
          <phase>package</phase>
          <goals>
            <goal>generate</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <!--允许移动生成的文件 -->
        <verbose>true</verbose>
        <!-- 是否覆盖 -->
        <overwrite>true</overwrite>
        <!-- 自动生成的配置 -->
        <configurationfile>src/main/resources/mybatis-generator.xml</configurationfile>
      </configuration>
    </plugin>
  </plugins>
</build>

src/main/resources/mybatis-generator.xml为生成器的配置,下文会介绍到。

配置插件
在spring boot配置文件application.yml中配置mybatis:

mybatis:
 # type-aliases扫描路径
 type-aliases-package: com.springboot.bean
 # mapper xml实现扫描路径
 mapper-locations: classpath:mapper/*.xml
 property:
  order: before

接下来开始配置插件。

配置通用mapper
在spring boot配置文件application.yml中配置通用mapper:

#mappers 多个接口时逗号隔开
mapper:
 mappers: com.springboot.config.mymapper
 not-empty: false
 identity: oracle

关于参数的说明,参考https://gitee.com/free/mapper/blob/master/wiki/mapper3/2.integration.md中的可配参数介绍。

除此之外,我们需要定义一个mymapper接口:

import tk.mybatis.mapper.common.mapper;
import tk.mybatis.mapper.common.mysqlmapper;

public interface mymapper<t> extends mapper<t>, mysqlmapper<t> {
	
}

值得注意的是,该接口不能被扫描到,应该和自己定义的mapper分开。自己定义的mapper都需要继承这个接口。

配置pagehelper
在spring boot配置文件application.yml中配置通用配置pagehelper:

#pagehelper
pagehelper: 
 helperdialect: oracle
 reasonable: true
 supportmethodsarguments: true
 params: count=countsql

参数相关说明参考https://github.com/pagehelper/mybatis-pagehelper/blob/master/wikis/zh/howtouse.md中的分页插件参数介绍。

配置geneator*
在路径src/main/resources/下新建mybatis-generator.xml:

<?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>
  <context id="oracle" targetruntime="mybatis3simple" defaultmodeltype="flat">

    <plugin type="tk.mybatis.mapper.generator.mapperplugin">
      <!-- 该配置会使生产的mapper自动继承mymapper -->
      <property name="mappers" value="com.springboot.config.mymapper" />
      <!-- casesensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->
      <property name="casesensitive" value="false"/>
    </plugin>

    <!-- 阻止生成自动注释 -->
    <commentgenerator>
      <property name="javafileencoding" value="utf-8"/>
      <property name="suppressdate" value="true"/>
      <property name="suppressallcomments" value="true"/>
    </commentgenerator>

    <!-- 数据库链接地址账号密码 -->
    <jdbcconnection 
      driverclass="oracle.jdbc.driver.oracledriver"
      connectionurl="jdbc:oracle:thin:@localhost:1521:orcl"
      userid="scott"
      password="6742530">
    </jdbcconnection>

    <javatyperesolver>
      <property name="forcebigdecimals" value="false"/>
    </javatyperesolver>

    <!-- 生成model类存放位置 -->
    <javamodelgenerator targetpackage="com.springboot.bean" targetproject="src/main/java">
      <property name="enablesubpackages" value="true"/>
      <property name="trimstrings" value="true"/>
    </javamodelgenerator>

    <!-- 生成映射文件存放位置 -->
    <sqlmapgenerator targetpackage="mapper" targetproject="src/main/resources">
      <property name="enablesubpackages" value="true"/>
    </sqlmapgenerator>

    <!-- 生成dao类存放位置 -->
    <!-- 客户端代码,生成易于使用的针对model对象和xml配置文件的代码
      type="annotatedmapper",生成java model 和基于注解的mapper对象
      type="xmlmapper",生成sqlmap xml文件和独立的mapper接口 -->
    <javaclientgenerator type="xmlmapper" targetpackage="com.springboot.mapper" targetproject="src/main/java">
      <property name="enablesubpackages" value="true"/>
    </javaclientgenerator>

    <!-- 配置需要生成的表 -->
    <table tablename="t_user" domainobjectname="user" enablecountbyexample="false" enableupdatebyexample="false" enabledeletebyexample="false" enableselectbyexample="false" selectbyexamplequeryid="false">
      <generatedkey column="id" sqlstatement="oralce" identity="true"/>
    </table>
  </context>
</generatorconfiguration>

转载:https://mrbird.cc/mybatis%20common%20mapper%20pagehelper.html

到此这篇关于mybatis通用mapper和pagehelper的文章就介绍到这了,更多相关mybatis通用mapper和pagehelper内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!