一套带走之SSM 逆向工程

上一篇文章 写了基于 Spring Boot 框架下的 MybatisPageHelpertk.mybatis 以及逆向工程 Mybatis Generator 的使用方法和注意事项。总觉的自己忽略了一部分人,因为有些身处传统行业的同学,是还用不上 Spring Boot 的。所以,今天特意再出一篇基于 SSM 框架下的集成方法,并记录 Mybatis GeneratorEclipse 的使用。

一、搭建

SSM 框架的基本构建应该是每一位 Java 程序猿的必备技能。这里我就不做过多的赘述,直接上 pom 了。

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.idol</groupId>
    <artifactId>ssm-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <mybatis.generator.version>1.3.5</mybatis.generator.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>5.1.12.RELEASE</version>
        </dependency>

        <!--引入spring webmvc的依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.12.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.1.12.RELEASE</version>
            <scope>provided</scope>
        </dependency>

        <!-- mybatis框架包 start -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>
        <!-- mybatis框架包 end -->

        <!--json数据交互所需jar,start-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.0</version>
        </dependency>
        <!--json数据交互所需jar,end-->

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.35</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
        </dependency>

        <!-- 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.4</version>
        </dependency>

        <!-- tk mybatis Begin -->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>4.1.5</version>
        </dependency>
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0</version>
        </dependency>
        <!-- tk mybatis End -->

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- 配置Maven的JDK编译级别 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>

            <!-- tomcat7插件 -->
            <!-- 注意:目前来说,maven中央仓库还没有tomcat8的插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <port>8081</port>
                    <path>/</path>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>${mybatis.generator.version}</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>5.1.35</version>
                    </dependency>
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>4.1.5</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

</project>

项目的依赖配置完成,接下来就是编写 Mybatis Generator 相关的配置,基本的配置内容与 Spring Boot 版的配置方式没有什么明显的区别。当然需要注意的是,SSM 版的 generatorConfig.xml 配置文件中多了下面一行配置。

<!--指定特定数据库的jdbc驱动jar包所在磁盘的绝对路径-->
<classPathEntry location="E:\\mysql-connector-java-5.1.35.jar"/>

同时,还有一点和 Spring Boot 版一样需要注意是:我们自定义的 tk.mybatis.MyMapper 类是不能被 Spring IoC 扫描到的。

二、代码生成

Mybatis Generator 运行前,我们还需编写一个通用 Mapper 的接口。通常情况下我们只需继承 tk.mybatis.mapper.common.Mapper 和对应数据库的接口即可。

MyMapper

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

/**
 * @author Supreme_Sir
 * @version 1.0
 * @className MyMapper
 * @description 该类不可被 Spring IoC 扫描到
 * @date 2020/11/19 17:18
 **/
public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
    
    
}

工程依赖及逆向工程配置完毕后就可以运行插件了。运行方式如下图所示:

以上就是在 IDEA 中的相关操作说明。如果不巧,你用的是 Eclipse 那就可以参照下面的步骤运行逆向工程。

  1. Eclipse 中,pom.xml 文件是不需要配置 mybatis-generator 插件的。即:不需要如下内容:
<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>${mybatis.generator.version}</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>5.1.35</version>
        </dependency>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>4.1.5</version>
        </dependency>
    </dependencies>
</plugin>
  1. Eclipse 中,需要安装 mybatis-generator 插件,安装步骤如下。

    Help 工具中打开 Eclipse Marketplace 选项,并搜索 mybatis generator 进行安装即可。

在这里插入图片描述

  1. Eclipse 中,逆向工程的运行方式是在 generatorConfig.xml 文件上右键选择,选择 Run Mybatis Generator

在这里插入图片描述

源码

源码下载

附:

PageHelper GitHub
PageHelper 官网
通用 Mapper3 GitHub
通用 Mapper4 码云

-------------------------- 你未必能光明万丈,但你必须温暖有光。 --------------------------

猜你喜欢

转载自blog.csdn.net/Supreme_Sir/article/details/109847043