当前位置:   article > 正文

如何在 IntelliJ IDEA 中的 Gradle 项目上使用 Mybatis Generator 自动生成代码_idea gradel项目使用mybatis插件

idea gradel项目使用mybatis插件

由于在 IntelliJ IDEA 中的 Gradle 项目无法直接使用著名的 MybatisGenerator 插件,所以要间接的通过一个 Ant Task 来生成

环境

  • JDK 1.8
  • IntelliJ IDEA 2017.1.4
  • Gradle 3.5.0

项目结构

该项目结构如下,这是一个标准的 Gradle 项目



添加依赖

这里主要用到了 MyBatis Generator,MyBatis Mapper 以及 MySQL Java Connector 的依赖,需要在 build.gradle 中添加如下内容

configurations {
    mybatisGenerator
}



添加 MyBatis Generator,MyBatis Mapper 以及 MySQL Java Connector 的依赖

<span style="font-size:18px;">dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'

    mybatisGenerator 'org.mybatis.generator:mybatis-generator-core:1.3.5'
    mybatisGenerator 'mysql:mysql-connector-java:5.1.40'
    mybatisGenerator 'tk.mybatis:mapper:3.3.9'
}</span>



配置数据库连接

在 resource 目录下新建 myBatisGenerator 目录,其中新建两个文件 config.properties ,generatorConfig.xml,名称可以不一样,但要注意和后面的配置中的目录保持一致



在 config.properties 中配置数据库的相关信息以及生成代码所在包的位置

# MySQL 驱动
jdbc.driverClassName = com.mysql.jdbc.Driver
# JDBC URL
jdbc.url =j dbc:mysql://127.0.0.1:3306/fullstack?useUnicode:true&characterEncoding:UTF-8
# 数据库用户名及密码
jdbc.username = root
jdbc.password = root
# 实体类所在包
package.model = me.zbl.fullstack.entity
# mapper 所在包
package.mapper = me.zbl.fullstack.mapper
# mapper xml 文件所在包
package.xml = mapping

配置 generatorConfig.xml 

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. <generatorConfiguration>
  6. <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
  7. <commentGenerator>
  8. <property name="suppressAllComments" value="true"></property>
  9. <property name="suppressDate" value="true"></property>
  10. <!-- java 文件编码格式 -->
  11. <property name="javaFileEncoding" value="utf-8"/>
  12. </commentGenerator>
  13. <!-- jdbc 连接信息 -->
  14. <jdbcConnection driverClass="${driverClass}"
  15. connectionURL="${connectionURL}"
  16. userId="${userId}"
  17. password="${password}">
  18. </jdbcConnection>
  19. <javaTypeResolver>
  20. <property name="forceBigDecimals" value="false"/>
  21. </javaTypeResolver>
  22. <!-- 实体类所在包名 -->
  23. <javaModelGenerator targetPackage="${modelPackage}" targetProject="${src_main_java}">
  24. <property name="enableSubPackages" value="true"></property>
  25. <property name="trimStrings" value="true"></property>
  26. </javaModelGenerator>
  27. <!-- xml 所在包名 -->
  28. <sqlMapGenerator targetPackage="${sqlMapperPackage}" targetProject="${src_main_resources}">
  29. <property name="enableSubPackages" value="true"></property>
  30. </sqlMapGenerator>
  31. <!-- mapper 所在包名 -->
  32. <javaClientGenerator targetPackage="${mapperPackage}" targetProject="${src_main_java}" type="ANNOTATEDMAPPER">
  33. <property name="enableSubPackages" value="true"/>
  34. </javaClientGenerator>
  35. <!-- 要生成的表 -->
  36. <!-- 这里的百分号代表对该数据库中所有的表进行生成 -->
  37. <table tableName="%">
  38. <generatedKey column="id" sqlStatement="Mysql" identity="true"/>
  39. </table>
  40. </context>
  41. </generatorConfiguration>

添加任务

在 build.gradle 中添加如下内容

def getDbProperties = {
    def properties = new Properties()
    file("src/main/resources/mybatis/jdbc.properties").withInputStream { inputStream ->
        properties.load(inputStream)
    }
    properties
}

task mybatisGenerate << {
    def properties = getDbProperties()
    ant.properties['targetProject'] = projectDir.path
    ant.properties['driverClass'] = properties.getProperty("jdbc.driverClassName")
    ant.properties['connectionURL'] = properties.getProperty("jdbc.url")
    ant.properties['userId'] = properties.getProperty("jdbc.username")
    ant.properties['password'] = properties.getProperty("jdbc.password")
    ant.properties['src_main_java'] = sourceSets.main.java.srcDirs[0].path
    ant.properties['src_main_resources'] = sourceSets.main.resources.srcDirs[0].path
    ant.properties['modelPackage'] = properties.getProperty("package.model")
    ant.properties['mapperPackage'] = properties.getProperty("package.mapper")
    ant.properties['sqlMapperPackage'] = properties.getProperty("package.xml")
    ant.taskdef(
            name: 'mbgenerator',
            classname: 'org.mybatis.generator.ant.GeneratorAntTask',
            classpath: configurations.mybatisGenerator.asPath
    )
    ant.mbgenerator(overwrite: true,
            configfile: 'src/main/resources/mybatis/generatorConfig.xml', verbose: true) {
        propertyset {
            propertyref(name: 'targetProject')
            propertyref(name: 'userId')
            propertyref(name: 'driverClass')
            propertyref(name: 'connectionURL')
            propertyref(name: 'password')
            propertyref(name: 'src_main_java')
            propertyref(name: 'src_main_resources')
            propertyref(name: 'modelPackage')
            propertyref(name: 'mapperPackage')
            propertyref(name: 'sqlMapperPackage')
        }
    }
}

等待 Gradle 重新构建并建立索引后,可以在 Gradle 窗口看到 mybatisGenerator 的任务




生成代码

双击 mybatisGenerator 即可开始任务,稍等片刻会在相应的包中出现相应的文件



注意

需要在网络连接正常的环境中进行构建,务必注意各个目录正确对应

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/307509
推荐阅读
相关标签
  

闽ICP备14008679号