zoukankan      html  css  js  c++  java
  • 使用maven的mybatisgenerator代码生成器插件生成实体类、mapper配置文件和mapper接口(使用idea)

    接着之前创建的ssmMaven项目

    一:

    在pom文件中加入mybatis-generator插件

    <plugins>
          <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.2</version>
            <configuration>
              <verbose>true</verbose>
              <overwrite>false</overwrite>
            </configuration>
            <dependencies>
              <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.21</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>

    注意:plugins标签不要写在pluginManagement标签里,或者plugin标签不要写在pluginManagement标签里的plugins标签里

    应该像我这样:另起一个plugins标签

    等待插件下载完成后,在maven插件中可以看到

    maven已经帮我们下载好了mubatis-generator插件

    二.编写代码生成器的配置文件(generatorConfig.xml)

    将该配置文件放入我们的resources文件夹下

    这里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="MyBatis3Simple">
    
            <!-- 自动识别数据库关键字,
            默认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="`" />
    
            <!--阻止生成日期和注释-->
            <commentGenerator>
                <property name="suppressDate" value="true" />
                <property name="suppressAllComments" value="true" />
            </commentGenerator>
    
            <!-- 数据库连接信息 -->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql:///mybatis" userId="root" password="1234">
            </jdbcConnection>
    
            <!-- java类型处理器 用于处理数据库中的类型到Java中的类型,
                 默认使用JavaTypeResolverDefaultImpl;
                 注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和
                NUMERIC数据类型; -->
            <javaTypeResolver
                    type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
                <!-- true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型 f
                     alse:默认, scale>0;length>18:使用BigDecimal;
                    scale=0;length[10,18]:使用Long; scale=0;length[5,9]:
                    使用Integer; scale=0;length<5:使用Short; -->
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
    
    
            <!--
            配置domain生成策略
            targetProject:把自动生成的domian放在哪个工程里面
            targetPackage:哪个包下
            -->
            <javaModelGenerator targetPackage="com.qfssc.domain"
                                targetProject="src/main/java">
                <!-- for MyBatis3/MyBatis3Simple
                自动为每一个生成的类创建一个构造方法,
                构造方法包含了所有的field;而不是使用setter; -->
                <property name="constructorBased" value="false" />
    
                <!-- for MyBatis3 / MyBatis3Simple
                是否创建一个不可变的类,如果为true,
                那么MBG会创建一个没有setter方法的类,
                取而代之的是类似constructorBased的类 -->
                <property name="immutable" value="false" />
    
                <!-- 设置是否在getter方法中,
                对String类型字段调用trim()方法 -->
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
    
            <!--
                配置mapper.xml的生成策略
                targetPackage:把自动生成的mapper放在哪个工程里面
                targetProject:哪个包下
            -->
            <sqlMapGenerator targetPackage="com.qfssc.mapper"
                             targetProject="src/main/java">
                <!-- 在targetPackage的基础上,
                根据数据库的schema再生成一层package,
                最终生成的类放在这个package下,默认为false -->
                <property name="enableSubPackages" value="true" />
            </sqlMapGenerator>
    
            <!--
               mapper接口生成策略
            -->
            <javaClientGenerator targetPackage="com.qfssc.mapper"
                                 type="XMLMAPPER" targetProject="src/main/java">
                <property name="enableSubPackages" value="true" />
            </javaClientGenerator>
    
            <!--建立与数据库中哪张表的关系映射-->
            <table tableName="student">
                
            </table>
    
        </context>
    </generatorConfiguration>

    三.建立数据库

    在mybatis数据库中建立student表(这个能在generatorConfig.xml中配置,上文已经提到)

    四.生成代码

    双击箭头指向的位置

    稍等片刻,即可看到代码的生成

    之前我们在application-mybatis.xml配置文件中配置过mapper配置文件的位置

    这里报红,说明并没有找到mapper文件

    我们在resources文件夹下创建com.qfssc.mapper文件夹,并将刚才生成的mapper配置文件放入

    然后,application-mybatis.xml文件就没有报错了

    至此代码生成的步骤全部完成!!!

  • 相关阅读:
    jQuery-css
    了解jQuery
    jQuery属性
    jQuery常用效果
    jQuery_$工具方法
    jQuery选择器
    jQuery核心对象
    $
    jQuery两把利器
    JavaScriptDOM
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/10337588.html
Copyright © 2011-2022 走看看