MyBatis入门教程(四):generator工具的使用

2017-12-15 更新:

  • 问题描述:今天想着把自动生成的注释去掉,就是在产生的时候,配置成不产生注释;结果配置完之后,报错 Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project shapeManager: XML Parser Error on line 30: 元素类型为 "context" 的内容必须匹配 "(property*,plugin*,commentGenerator?,jdbcConnection,javaTypeResolver?,javaModelGenerator,sqlMapGenerator?,javaClientGenerator?,table+)"。 -> [Help 1]
  • 原因分析:是因为context的属性配置要按照它给定的顺序来,就是上面报错的顺序(property*,plugin*,commentGenerator?,jdbcConnection,javaTypeResolver?,javaModelGenerator,sqlMapGenerator?,javaClientGenerator?,table+)
  • 解决办法:按顺序即可
    代码如下:
<?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:\\Users\\ZHONGYUAN\\.m2\\repository\\mysql\\mysql-connector-java\\5.1.41\\mysql-connector-java-5.1.41.jar"/>
    <context id="DB2Tables">
        <!--
            注意:context的子元素要按照指定的顺序排列,否则报错 The content of element type "context" must match "(property*,plugin*,commentGenerator?
            顺序是 (property*,plugin*,commentGenerator?,jdbcConnection,javaTypeResolver?,javaModelGenerator,sqlMapGenerator?,javaClientGenerator?,table+)
        -->
        <!-- 是否生成注释 -->
        <commentGenerator>
            <property name="suppressDate" value="true" />
        </commentGenerator>
        <jdbcConnection connectionURL="jdbc:mysql://localhost:3306/shape_manager"
            driverClass="com.mysql.jdbc.Driver" password="root" userId="root" />
        <javaModelGenerator targetPackage="com.v11j.shapeManager.entity"
            targetProject="D:\CompanyProject\STSProject\\shapeManager\\src\\main\\java" />
        <sqlMapGenerator targetPackage="com.v11j.shapeManager.dao"
            targetProject="D:\CompanyProject\STSProject\\shapeManager\\src\\main\\java" />
        <javaClientGenerator targetPackage="com.v11j.shapeManager.dao"
            targetProject="D:\CompanyProject\STSProject\\shapeManager\\src\\main\\java"
            type="XMLMAPPER" />
        <!-- 下面的enableCountByExample=false是为了不生成example类 -->
        <table tableName="auto_measure_body_data" enableCountByExample="false"
            enableUpdateByExample="false" enableDeleteByExample="false"
            enableSelectByExample="false" selectByExampleQueryId="false">
            <generatedKey column="id" sqlStatement="MySql" identity="true" />
        </table>

    </context>

</generatorConfiguration>

  • MyBatis Generator的官网是:http://www.mybatis.org/generator/index.html
  • 这里我用的是eclipse插件MyBatis Generator:http://www.mybatis.org/generator/running/runningWithEclipse.html
  • 安装步骤:
    • 在Eclipse marketplace 里搜索 “MyBatis Generator” ,然后直接安装. 操作步骤为Help->Eclipse Marketplace
    • 如果安装不成功,可以直接去网址下载: https://marketplace.eclipse.org/
  • 如何使用:
    • 在一个web项目webProject1中的根目录中,创建一个配置文件
      • File>New>Other…
      • 选择”MyBatis Generator Configuration File”,点击下一步
      • 指定文件目录并且修改文件名,默认为generatorConfig.xml,完成即可。
    • 具体的文件配置见下面的例子,需要注意的有以下几点:
      • 默认的文件中没有配置classPathEntry属性,结果提示jdbc驱动包不存在。
      • 运行该文件时,有两种方式:1-右键->Generate MyBatis Artifacts;2-Run as->Run MyBatis Generator;刚开始我用的第二种,因为第一种方式即将被遗弃;结果使用第二种时,我的targetProject属性的值写错了,却不提示,导致找了好久;使用第一种方式就会提示你具体的错误在哪里;结论:如果第一种能用,就先用第一种方式运行;
      • 如果不想生成Example类,可以在table元素中配置enableCountByExample=false等5个属性
<?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="/Users/jalon/.m2/repository/mysql/mysql-connector-java/5.1.41/mysql-connector-java-5.1.41.jar" />
  <context id="DB2Tables">
    <jdbcConnection connectionURL="jdbc:mysql://localhost:3306/blog" driverClass="com.mysql.jdbc.Driver" password="" userId="root" />
    <javaModelGenerator targetPackage="com.v11j.blog.entity" targetProject="spring-boot/src/main/java" />
    <sqlMapGenerator targetPackage="com.v11j.blog.mapper" targetProject="spring-boot/src/main/java" />
    <javaClientGenerator targetPackage="com.v11j.blog.mapper" targetProject="spring-boot/src/main/java" type="XMLMAPPER" />
    <table tableName="article" enableCountByExample="false" enableUpdateByExample="false" 
    enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
        <generatedKey column="id" sqlStatement="MySql" identity="true"  />
      <columnOverride column="user_id" property="userId" />
      <columnOverride column="del_flag" property="delFlag" />
    </table>
  </context>
</generatorConfiguration>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值