美文网首页数据框架Mybatis
IntelliJ IDEA中使用通用Mapper做逆向工程

IntelliJ IDEA中使用通用Mapper做逆向工程

作者: 瑾兰 | 来源:发表于2018-10-17 14:42 被阅读351次

    情景:

    在springboot+通用Mapper 项目中。通用Mapper优化封装了mybatis。但是我之前用mybatis时可以进行逆向工程,生成代码(参见我之前写的文章《IntelliJ IDEA中使用mybatis-generator》)。那么如何用通用Mapper也能做逆向工程,生成代码呢?本文就来简述一下步骤。

    条件:

    • 软件:IntelliJ IDEA
    • 项目:maven +通用mapper

    我本想尝试用gradle来构建项目,生成代码的。但是苦于不知道如何将通用mapper生成代码插件在build.gradle中使用以及如何来运行这个build.gradle文件。只能放弃,该用maven来构建项目。

    步骤:

    1、创建maven项目
    项目结构.png
    2、pom.xml 导入相关依赖
    
     <project xmlns="[http://maven.apache.org/POM/4.0.0](http://maven.apache.org/POM/4.0.0)" xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance](http://www.w3.org/2001/XMLSchema-instance)"
    
    xsi:schemaLocation="[http://maven.apache.org/POM/4.0.0](http://maven.apache.org/POM/4.0.0)[http://maven.apache.org/xsd/maven-4.0.0.xsd](http://maven.apache.org/xsd/maven-4.0.0.xsd)">
    
    <modelVersion>4.0.0</modelVersion>
    
    <parent>
    
    <groupId>org.springframework.boot</groupId>
    
    <artifactId>spring-boot-starter-parent</artifactId>
    
    <version>1.5.6.RELEASE</version>
    
    </parent>
    
    <groupId>top.smartpos</groupId>
    
    <artifactId>demo</artifactId>
    
    <version>1.0.0</version>
    
    <properties>
    
    <java.version>1.8</java.version>
    
    <mybatis.version>1.3.1</mybatis.version>
    
    <mapper.version>3.4.3</mapper.version>
    
    <mybatis-generator.version>1.3.3</mybatis-generator.version>
    
    <mybatis-tk.version>1.1.4</mybatis-tk.version>
    
    <pagehelper.version>1.2.1</pagehelper.version>
    
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
    <[maven.compiler.source](http://maven.compiler.source/)>1.8</[maven.compiler.source](http://maven.compiler.source/)>
    
    <[maven.compiler.target](http://maven.compiler.target/)>1.8</[maven.compiler.target](http://maven.compiler.target/)>
    
    <!-- Mybatis Generator -->
    
    <!-- >>>>>>>>>>>>>>>>>>>>>>>>>java 接口和实体类 <<<<<<<<<<<<<<<<<<<<<<<-->
    
    <!-- ${basedir}:引用工程根目录-->
    
    <!-- targetJavaProject :声明存放源码的目录位置-->
    
    <targetJavaProject>${basedir}/src/main/java</targetJavaProject>
    
    <!-- targetModelPackage :声明存MBG生成 XxxMapper接口后存放的package位置 -->
    
    <targetMapperPackage>top.smartpos.itom.mappers</targetMapperPackage>
    
    <!--targetModelPackage : 声明MBG生成实体类后存放的package位置 -->
    
    <targetModelPackage>top.smartpos.itom.entity</targetModelPackage>
    
    <!-- >>>>>>>>>>>>>>>>>>>>>>>>>xml 生成路径 <<<<<<<<<<<<<<<<<<<<<<<<-->
    
    <!-- targetResoutcesProject :声明存放资源文件和XML配置文件的目录位置 -->
    
    <targetResoutcesProject>${basedir}/src/main/resources</targetResoutcesProject>
    
    <!-- targetXMLProject 声明存放具体XxxMapper.xml文件的目录位置-->
    
    <!--**注意:这地方路径是/ 而不是 .** -->
    
    <targetXMLProject>top/smartpos/itom/mappers</targetXMLProject>
    
    <!-- 依赖版本-->
    
    <!--通用mapper的版本号-->
    
    <mapper.version>4.0.4</mapper.version>
    
    <!--MYSQL 驱动版本号-->
    
    <mysql.version>5.1.29</mysql.version>
    
    <mybatis.generator.version>1.3.4</mybatis.generator.version>
    
    </properties>
    
    <dependencies>
    
    <!-- SpringBoot - Web -->
    
    <dependency>
    
    <groupId>org.springframework.boot</groupId>
    
    <artifactId>spring-boot-starter-web</artifactId>
    
    </dependency>
    
    <!-- SpringBoot - MyBatis -->
    
    <dependency>
    
    <groupId>org.mybatis.spring.boot</groupId>
    
    <artifactId>mybatis-spring-boot-starter</artifactId>
    
    <version>${mybatis.version}</version>
    
    </dependency>
    
    <!-- SpringBoot - MyBatis 逆向工程 -->
    
    <dependency>
    
    <groupId>org.mybatis.generator</groupId>
    
    <artifactId>mybatis-generator-core</artifactId>
    
    <version>${mybatis-generator.version}</version>
    
    </dependency>
    
    <!-- MyBatis 通用 Mapper -->
    
    <dependency>
    
    <groupId>tk.mybatis</groupId>
    
    <artifactId>mapper-spring-boot-starter</artifactId>
    
    <version>${mybatis-tk.version}</version>
    
    </dependency>
    
    <!-- Mysql -->
    
    <dependency>
    
    <groupId>mysql</groupId>
    
    <artifactId>mysql-connector-java</artifactId>
    
    </dependency>
    
    </dependencies>
    
    <build>
    
    <plugins>
    
    <!-- MyBatis 逆向工程 插件 -->
    
    <plugin>
    
    <groupId>org.mybatis.generator</groupId>
    
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    
    <version>1.3.6</version>
    
    <dependencies>
    
    <dependency>
    
    <groupId>mysql</groupId>
    
    <artifactId>mysql-connector-java</artifactId>
    
    <version>${mysql.version}</version>
    
    </dependency>
    
    <dependency>
    
    <groupId>tk.mybatis</groupId>
    
    <artifactId>mapper</artifactId>
    
    <version>${mapper.version}</version>
    
    </dependency>
    
    </dependencies>
    
    <configuration>
    
    <!-- 允许移动生成的文件 -->
    
    <verbose>true</verbose>
    
    <!-- 是否覆盖 -->
    
    <overwrite>true</overwrite>
    
    <!-- 配置文件 -->
    
    <configurationFile>
    
    ${basedir}/src/main/resources/generatorConfig.xml
    
    </configurationFile>
    
    </configuration>
    
    </plugin>
    
    </plugins>
    
    </build>
    
    </project>
    
    
    3、创建属性文件application.properties
     # Generator
    
    generator.targetProject=src/main/java
    
    #通用Mapper插件
    
    generator.plugin=tk.mybatis.mapper.generator.MapperPlugin
    
    # 可以修改自定义的mapper接口
    
    generator.mappers=[tk.mybatis.mapper.common.Mapper](http://tk.mybatis.mapper.common.mapper/)
    
    generator.javaModel-targetPackage=top.smartpos.itom.entity
    
    generator.sqlMap-targetPackage=top.smartpos.itom.mappers
    
    generator.javaClient-targetPackage=top.smartpos.itom.mappers
    
    # 数据库信息
    
    jdbc.driverClass= com.mysql.jdbc.Driver
    
    jdbc.url= jdbc:mysql://localhost:3306/mytest
    jdbc.user= root
    
    jdbc.password= root
    
    
    4、创建gengratorConfig.xml
     <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE generatorConfiguration
    
    PUBLIC "-//[mybatis.org//DTD](http://mybatis.org//DTD) MyBatis Generator Configuration 1.0//EN"
    
    "[http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd](http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd)">
    
    <generatorConfiguration>
    
    <!-- 引入 application.properties -->
    
    <properties resource="application.properties" />
    
    <!-- MyBatis3Simple:不生成 Example相关类及方法 -->
    
    <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
    
    <property name="beginningDelimiter" value="`" />
    
    <property name="endingDelimiter" value="`" />
    
    <!-- 指定生成 Mapper 的继承模板 -->
    
    <plugin type="${generator.plugin}">
    
    <property name="mappers" value="${generator.mappers}" />
    
    </plugin>
    
    <!-- 生成 JavaBean 对象重写 toString方法 -->
    
    <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
    
    <!-- 生成 JavaBean 对象继承 Serializable 类 -->
    
    <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
    
    <!-- 生成 JavaBean 对象重写 equals 和 hashCode 方法 -->
    
    <!-- <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" /> -->
    
    <!-- jdbc 连接配置 -->
    
    <jdbcConnection driverClass="${jdbc.driverClass}"
    
    connectionURL="${jdbc.url}"
    
    userId="${jdbc.user}"
    
    password="${jdbc.password}">
    
    </jdbcConnection>
    
    <javaModelGenerator targetPackage="${targetModelPackage}"
    
    targetProject="${targetJavaProject}" />
    
    <sqlMapGenerator targetPackage="${targetXMLProject}"
    
    targetProject="${targetResoutcesProject}" />
    
    <javaClientGenerator targetPackage="${targetMapperPackage}"
    
    targetProject="${targetJavaProject}" type="XMLMAPPER" />
    
    <!-- Mysql 配置 -->
    
    <!-- <generatedKey column="id" sqlStatement="Mysql" identity="true" /> -->
    
    <!-- Oracle 配置 -->
    
    <!-- <generatedKey column="id" sqlStatement="select SEQ_{1}.nextval from dual" identity="false" type="pre"/> -->
    
    <!-- tableName:数据库表名,domainObjectName:生成文件名 ,schema:数据源-->
    
    <table tableName="emp_info" domainObjectName="EmpInfo">
    
    <generatedKey column="e_id" sqlStatement="Mysql" identity="true" />
    
    </table>
    
    </context>
    
    </generatorConfiguration>
    
    
    注意:

    1、需要把 application.properties 和 pom.xml 出现的文件目录都手动创建出来。
    2、在gengratorConfig.xml 引入 application.properties 文件,可以使用其中已经定义好的变量。同时gengratorConfig.xml 文件可以直接使用pom.xml文件定义的变量。

    5、运行

    运行maven 中pom.xml文件 ,输入命令:
    mybatis-generator:generate -e
    或者在命令行中输入:
    mvn mybatis-generator:generate

    方式一:运行pom.xml文件

    pom运行.png

    方式二:控制台输入命令运行


    控制台运行效果.png

    相关文章

      网友评论

        本文标题:IntelliJ IDEA中使用通用Mapper做逆向工程

        本文链接:https://www.haomeiwen.com/subject/jcqrzftx.html