Mybatis 通用 Mapper 使用 ①

简介

官网链接:https://mapperhelper.github.io/docs/

  1. 通用Mapper都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。
  2. 极其方便的使用MyBatis单表的增删改查。
  3. 支持单表操作,不支持通用的多表联合查询。

上面的概述是摘自官网的介绍,就是使用这个插件的话,简单的单表操作是不需要我们再去编写代码了。

Mybatis Generator

在介绍通用mapper之前,先来介绍一下mybatis generator。详细文档配置可参照: https://gitee.com/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.md

<?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>

    <!-- 当classpath下面没有JDBC驱动的时候,我们通常通过这个属性指定驱动的路径
    <classPathEntry location="E:\mysql\mysql-connector-java-5.1.29.jar"/>
    -->
    <!-- flat:该模型为每一张表只生成一个实体类。这个实体类包含表中的所有字段。这种模型最简单,推荐使用 -->
    <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <!-- 下面这些是在mysql的关键字上自动加上 ` `-->
        <property name="autoDelimitKeywords" value="true"/>
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <!--配置插件-->
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value=" tk.mybatis.mapper.common.Mapper"/>
            <!--<property name="mappers" value="com.example.demo.utils.CommonMapper"/>-->
        </plugin>

        <commentGenerator>
            <property name="suppressAllComments" value="false"/><!-- 是否取消注释 -->
            <property name="suppressDate" value="true"/> <!-- 是否生成注释代时间戳-->
        </commentGenerator>

        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=UTC&amp;useSSL=false"
                        userId="root"
                        password="root">
        </jdbcConnection>
        <!--生成pojo-->
        <javaModelGenerator targetPackage="com.example.demo.model" targetProject="src/main/java"/>

        <sqlMapGenerator targetPackage="com.example.demo.mapper" targetProject="src/main/resources"/>

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

<!-- 这里用的 % 通配符匹配全部的表,另外所有表都有自动增长的id字段。如果不是所有表的配置都一样,可以做针对性的配置 -->
        <table tableName="%">
            <generatedKey column="id" sqlStatement="Mysql" identity="true"/>
        </table>
    </context>
</generatorConfiguration>
复制代码

编写好上面的xml配置后,就可以运行了,

使用 maven 运行(推荐)

只需要引入这个plugin就行,然后使用 mvn mybatis-generator:generate。

  <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <verbose>false</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>${mysql.version}</version>
                    </dependency>
                    <--下面配置是通用mapper的配置,可选 -->
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>3.4.3</version>
                    </dependency>
                </dependencies>
            </plugin>
复制代码

使用java类运行

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.util.ArrayList;
import java.util.List;

/**
 * @author yanghuan
 */
public class MainGenerator {
    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        List<String> warnings = new ArrayList<>();
        boolean overwrite = true;
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(
                MainGenerator.class.getResourceAsStream("/generator/generatorConfig.xml"));
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, null);
        myBatisGenerator.generate(null);
    }
}
复制代码

接下来就会生成对应的实体类、接口和xml文件

PageHelper的使用

一般统一mapper也会使用到强大的分页插件PageHelper PageHelper的文档地址: https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md

它的原理就是使用了mybatis提供的拦截器(plugins),对SQL进行拦截。因为是国人写的,代码的注释很完整,阅读源码压力也不会太大。 先引入依赖

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.3</version>
</dependency>
复制代码

Spring Boot中,只需要在application.yml中引入。

pagehelper:
    helperDialect: mysql
    reasonable: true
    supportMethodsArguments: true
    params: count=countSql
复制代码

具体的用法在之后使用通用mapper的时候再说明。

转载于:https://juejin.im/post/5a37600951882538e2259fbe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值