美文网首页IT@程序员猿媛SpringBoot精选Java架构技术进阶
STS整合MyBatis generator 生成的两种方式

STS整合MyBatis generator 生成的两种方式

作者: 程就人生 | 来源:发表于2019-06-27 23:28 被阅读9次

昨天深夜,在自家的电脑上也安装了Mybatis generator的插件,安装过程请参考 STS 整合 mybatis generator 生成文件 一文中的安装步骤,安装完成后,在生成文件时卡壳了,怎么也生成不了。

在公司电脑上,使用上文中的生成方式,明明是可以的生成的,换成了自家的电脑,怎么这么不给力,一点反应也没有,控制台没有任何输出,这个确实让人郁闷。但还是花时间调查了一翻,把两个项目的环境仔细进行了对比。对比之下发现了差异,也发现生成文件的两种方式。

两个项目都是使用Spring Starter Project生成的,但是在pom.xml文件里,有一点不同,一个pom文件中没有mysql-connector-java架包,一个pom中加了mysql-connector-java架包。

pom.xml中的数据库连接架包:

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

细细研究发现,pom中有mysql-connector-java架包的,generatorConfig.xml配置的数据库连接架包就失去了作用;这时,点击generatorConfig.xml中的右键Run AS->Run MyBatis generator,有可能没有任何反应,控制台不会有任何输出。

这时,需要在Run Configuration下,对Configuration进行配置,再次选中generatorConfig.xml,点击运行才能生成文件,这时生效的应该是pom.xml中的数据库连接架包。这么说,是因为有两个架包让生成文件傻傻分不清了?!

generatorConfig.xml中的数据库连接架包:

<!-- 数据库驱动包位置 -->
  <classPathEntry location="C:/maven_repo/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar" />

说了那么多,还是上具体的差异代码比较好。

第一种方式

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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>spirng-mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spirng-mybatis</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

generatorConfig.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>

  <!-- 数据库驱动包位置 -->

  <classPathEntry location="C:/maven_repo/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar" />

  <context id="context" >

  <commentGenerator>

  <!-- 是否去除自动生成的注释 true:是  : false:否 -->

  <property name="suppressAllComments" value="true"/>

  <property name="suppressDate" value="true"/>

  </commentGenerator>

  <!-- 数据库连接配置 -->
  <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test1" userId="root" password="123456" >
  <property name="useInformationSchema" value="true"/>
  </jdbcConnection>

  <!-- 生成模型的包名和位置 -->

  <javaModelGenerator targetPackage="com.example.demo.entity" targetProject="spirng-mybatis-demo/src/main/java" >

  <property name="enableSubPackages" value="true"/>

  </javaModelGenerator>

  <!-- 生成的<u>xml</u>映射文件包名和位置 -->

  <sqlMapGenerator targetPackage="mapper" targetProject="spirng-mybatis-demo/src/main/resources" >

  <property name="enableSubPackages" value="true"/>

  </sqlMapGenerator>

  <!-- 生成DAO的包名和位置 -->

  <javaClientGenerator targetPackage="com.example.demo.dao" targetProject="spirng-mybatis-demo/src/main/java" type="XMLMAPPER" >

  <property name="enableSubPackages" value="true"/>

  </javaClientGenerator>

  <!-- 要生成的那些表, tableName表名,domainObjectName生成后的对象名称 -->

  <table tableName="t_test" domainObjectName="Test" enableCountByExample="false" enableUpdateByExample="false"

 enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">

  </table>

  </context>

</generatorConfiguration>

按照这种方式配置,直接右击generatorConfig.xml就可以生成对应的mapper和xml文件。

第二种方式

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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>spirng-mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spirng-mybatis</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

generatorConfig.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="context" >
  <commentGenerator>
  <!-- 是否去除自动生成的注释 true:是  : false:否 -->

  <property name="suppressAllComments" value="true"/>

  <property name="suppressDate" value="true"/>

  </commentGenerator>

  <!-- 数据库连接配置 -->

  <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test1" userId="root" password="123456" >

  <property name="useInformationSchema" value="true"/>

  </jdbcConnection>

  <!-- 生成模型的包名和位置 -->

  <javaModelGenerator targetPackage="com.example.demo.entity" targetProject="spirng-mybatis-demo/src/main/java" >

  <property name="enableSubPackages" value="true"/>

  </javaModelGenerator>

  <!-- 生成的<u>xml</u>映射文件包名和位置 -->

  <sqlMapGenerator targetPackage="mapper" targetProject="spirng-mybatis-demo/src/main/resources" >

  <property name="enableSubPackages" value="true"/>

  </sqlMapGenerator>

  <!-- 生成DAO的包名和位置 -->

  <javaClientGenerator targetPackage="com.example.demo.dao" targetProject="spirng-mybatis-demo/src/main/java" type="XMLMAPPER" >

  <property name="enableSubPackages" value="true"/>

  </javaClientGenerator>

  <!-- 要生成的那些表, tableName表名,domainObjectName生成后的对象名称 -->

  <table tableName="t_test" domainObjectName="Test" enableCountByExample="false" enableUpdateByExample="false"

 enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">

  </table>

  </context>

</generatorConfiguration>

这时,需要点击菜单栏的三角运行按钮下的Run Configuration进行配置


图-1
图-2
图-3
图-4
图-5

进行以上的配置之后,就可以正常生成mapper和xml文件了。

总结
使用MyBatis generator 生成文件,本是很简单的操作,但是因为项目环境的微妙差异,就会有不一样的结果。这时,只有细心一点,再细心一点,多对比一下,找出差异,就能解决这个问题。

有帮助,微信扫一扫,关注一下

相关文章

网友评论

    本文标题:STS整合MyBatis generator 生成的两种方式

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