exclipse使用maven mybatis-generator-maven-plugin 插件生成代码的坑

  按照网上的步骤使用maven配置生成mybatis代码就是行,没有报错也没有执行.

步骤是这样的:

1.在pom.xml配置

<build>
        <finalName>byh</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.2</version>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.20.1</version>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.0</version>
            </plugin>
            <plugin>
                <artifactId>maven-install-plugin</artifactId>
                <version>2.5.2</version>
            </plugin>
            <plugin>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
            </plugin>

            <!-- MyBatis Generator -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <!-- 打印执行过程 -->
                    <verbose>true</verbose>
                    <!-- 允许覆盖生成的文件 -->
                    <overwrite>true</overwrite>
                    <!-- 配置文件路径 -->
                    <configurationFile>src/main/resources/mybatis/generatorConfig.xml</configurationFile>
                    <!-- 生成部分mapper,指定table名字 -->
                    <tableNames>
                        <!--
                        b_article,
                        b_byzone,
                        b_collection,
                        b_comment,
                        b_contacts,
                        b_enterprise,
                        b_feedback,
                        b_honor,
                        b_opportunity,
                        b_photo,
                        b_user_attach_info,
                        b_vip_approval,
                        d_dictionary,
                        s_resource,
                        s_role,
                        s_role_resource,
                        s_user_role,
                        sb_user,
                        b_byzone
                        b_activity
                        -->
                        b_entertainment
                    </tableNames>
                </configuration>

                <dependencies>
                    <!-- generator -->
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.7</version>
                    </dependency>
                    <dependency>
                        <groupId>cc.pengar.mybitis</groupId>
                        <artifactId>generator</artifactId>
                        <version>1.3.7</version>
                    </dependency>
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>4.0.2</version>
                    </dependency>
                    <!-- mysql -->
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.46</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

2:在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="mysql" defaultModelType="hierarchical" targetRuntime="cc.pengar.mybitis.generator.MyTkMyBatis3SimpleImpl" >

        <!--
            自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;
            一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖
         -->
        <property name="autoDelimitKeywords" value="false"/>
        <!-- 生成的Java文件的编码 -->
        <property name="javaFileEncoding" value="UTF-8"/>
        <!-- 格式化java代码 -->
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
        <!-- 格式化XML代码 -->
        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>

        <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
        <plugin type="cc.pengar.mybitis.generator.expand.MyMapperPlugin">
            <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
            <property name="caseSensitive" value="true"/>
            <property name="configurationType" value="cc.pengar.mybitis.generator.expand.internal.ChineseCommentGenerator"/>
        </plugin>

        <!--
           必须要有的,使用这个配置链接数据库
            @TODO:是否可以扩展
         -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://192.168.1.82:3306/byh_test?serverTimezone=UTC&amp;useSSL=false"
                        userId="root" password="admin">
            <!-- 这里面可以设置property属性,每一个property属性都设置到配置的Driver上 -->
        </jdbcConnection>

        <!--
            java类型处理器
            用于处理DB中的类型到Java中的类型,默认使用JavaTypeResolverDefaultImpl;
            注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和 NUMERIC数据类型;
        -->
        <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>


        <!--
            java模型创建器,是必须要的元素
            负责:1,key类(见context的defaultModelType);2,java类;3,查询类
            targetPackage:生成的类要放的包,真实的包受enableSubPackages属性控制;
            targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录
         -->
        <javaModelGenerator targetPackage="com.byh.entity" targetProject="src/main/java">
            <property name="constructorBased" value="false"/>
            <property name="enableSubPackages" value="true"/>
            <property name="immutable" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>


        <!--
            生成SQL map的XML文件生成器,
            注意,在Mybatis3之后,我们可以使用mapper.xml文件+Mapper接口(或者不用mapper接口),
            或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的话,这个元素就必须配置
            targetPackage/targetProject:同javaModelGenerator
         -->
        <sqlMapGenerator targetPackage="com.byh.mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!--
            对于mybatis来说,即生成Mapper接口,注意,如果没有配置该元素,那么默认不会生成Mapper接口
            targetPackage/targetProject:同javaModelGenerator
            type:选择怎么生成mapper接口(在MyBatis3/MyBatis3Simple下):
                1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;
                2,MIXEDMAPPER:使用混合配置,会生成Mapper接口,并适当添加合适的Annotation,但是XML会生成在XML中;
                3,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;
            注意,如果context是MyBatis3Simple:只支持ANNOTATEDMAPPER和XMLMAPPER
        -->
        <javaClientGenerator targetPackage="com.byh.dao" type="XMLMAPPER" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!-- 配置表信息,不生成帮助类examples-->
        <!--
        <table tableName="b_article" mapperName="ArticleDao" domainObjectName="Article"/>
        <table tableName="b_byzone" mapperName="ByZoneDao" domainObjectName="ByZone"/>
        <table tableName="b_technology" mapperName="TechnologyDao" domainObjectName="Technology"/>
        <table tableName="b_collection" mapperName="CollectionDao" domainObjectName="Collection"/>
        <table tableName="b_comment" mapperName="CommentDao" domainObjectName="Comment"/>
        <table tableName="b_enterprise" mapperName="EnterpriseDao" domainObjectName="Enterprise"/>
        <table tableName="b_feedback" mapperName="FeedbackDao" domainObjectName="Feedback"/>
        <table tableName="b_honor" mapperName="HonorDao" domainObjectName="Honor"/>
        <table tableName="b_opportunity" mapperName="OpportunityDao" domainObjectName="Opportunity"/>
        <table tableName="b_photo" mapperName="PhotoDao" domainObjectName="Photo"/>
        <table tableName="b_user_attach_info" mapperName="UserAttachInfoDao" domainObjectName="UserAttachInfo"/>
        <table tableName="b_vip_order" mapperName="VipOrderDao" domainObjectName="VipOrder"/>
        <table tableName="d_dictionary" mapperName="DictionaryDao" domainObjectName="Dictionary"/>
        <table tableName="d_area" mapperName="AreaDao" domainObjectName="Area"/>
        <table tableName="s_resource" mapperName="ResourceDao" domainObjectName="Resource"/>
        <table tableName="s_role" mapperName="RoleDao" domainObjectName="Role"/>
        <table tableName="s_role_resource" mapperName="RoleResourceDao" domainObjectName="RoleResource"/>
        <table tableName="s_user_role" mapperName="UserRoleDao" domainObjectName="UserRole"/>
        <table tableName="sb_user" mapperName="UserDao" domainObjectName="User"/>
        <table tableName="b_activity" mapperName="ActivityDao" domainObjectName="Activity"/>
        -->
        <table tableName="b_entertainment" mapperName="EntertainmentDao" domainObjectName="Entertainment"/>
    </context>

</generatorConfiguration>

一切准备就绪后运行...

右键项目-->Run As-->run configurations

-->点击Run运行,发现控制台空空如也,也不报错.郁闷中...

最后尝试用命令行执行,发现居然可以了

打开cmd命令窗口

-->进入项目位置(cd 即可自行百度)

-->运行如下命令:mvn mybatis-generator:generate

-->完事了,刷新项目即可

如下图:

猜你喜欢

转载自blog.csdn.net/EverLJS/article/details/82771096