在 Intellij IDEA 中结合 Gradle 使用 MyBatis Generator 逆向生成代码
- Info:
- JDK 1.8
- Gradle 2.14
- Intellij IDEA 2016.3
由于 IDEA 的教程较少,且 MyBatis Generator 不支持 Gradle 直接运行,因此这次是在自己折腾项目过程中,根据一些参考资料加上自己的实践得出的结论,并附上相应的 Demo 可供自己未来参考,也与大家分享。
本文的 Demo 也可以当作工具直接导入 IDEA,加上自己的数据库信息即可生成代码。
创建项目
详细的创建步骤可以参考使用 Gradle 构建 Struts 2 Web 应用中「新建 Gradle Web 项目」一节即可。当创建完毕,需要等待 Gradle 联网构建,由于国内网络因素,可能需要稍作等待。当构建完成,目录结构应如下图一致:
配置依赖
这里需要使用 MyBatis Generator,MySQL 驱动,以及 MyBatis Mapper。由于代码生成单独运行即可,不需要参与到整个项目的编译,因此在 build.gradle 中添加配置:
configurations {
mybatisGenerator
}
依赖的版本并不是局限于某个特定版本,可以选择适时相应的更新版本。添加到 build.gradle 的 dependencies 中(注意前面需将「compile group:」改为 「mybatisGenerator」):
dependencies {
testCompile <span class="hljs-string">group: <span class="hljs-string">'junit', <span class="hljs-string">name: <span class="hljs-string">'junit', <span class="hljs-string">version: <span class="hljs-string">'4.11'
mybatisGenerator <span class="hljs-string">'org.mybatis.generator:mybatis-generator-core:1.3.5'
mybatisGenerator <span class="hljs-string">'mysql:mysql-connector-java:5.1.40'
mybatisGenerator <span class="hljs-string">'tk.mybatis:mapper:3.3.9'
}
</span></span></span></span></span></span></span></span></span>
设置数据库信息
在 config.properties 中配置数据库和要生成的 Java 类的包:
设置生成代码的配置文件
在 generatorConfig.xml 中配置数据库表信息,可以参考官方的文档(附在文末)来进行配置:
Gradle 设置 Ant Task
由于 MyBatis Generator 尚不支持 Gradle,所以只能使用 Gradle 来执行 Ant Task,达到相同的效果。
build.gradle:
<span class="hljs-keyword">def getDbProperties = {
<span class="hljs-keyword">def properties = <span class="hljs-keyword">new Properties()
file(<span class="hljs-string">"src/main/resources/mybatis/jdbc.properties").withInputStream { inputStream ->
properties.load(inputStream)
}
properties
}
task mybatisGenerate << {
<span class="hljs-keyword">def properties = getDbProperties()
ant.properties[<span class="hljs-string">'targetProject'] = projectDir.path
ant.properties[<span class="hljs-string">'driverClass'] = properties.getProperty(<span class="hljs-string">"jdbc.driverClassName")
ant.properties[<span class="hljs-string">'connectionURL'] = properties.getProperty(<span class="hljs-string">"jdbc.url")
ant.properties[<span class="hljs-string">'userId'] = properties.getProperty(<span class="hljs-string">"jdbc.username")
ant.properties[<span class="hljs-string">'password'] = properties.getProperty(<span class="hljs-string">"jdbc.password")
ant.properties[<span class="hljs-string">'src_main_java'] = sourceSets.main.java.srcDirs[<span class="hljs-number">0].path
ant.properties[<span class="hljs-string">'src_main_resources'] = sourceSets.main.resources.srcDirs[<span class="hljs-number">0].path
ant.properties[<span class="hljs-string">'modelPackage'] = properties.getProperty(<span class="hljs-string">"package.model")
ant.properties[<span class="hljs-string">'mapperPackage'] = properties.getProperty(<span class="hljs-string">"package.mapper")
ant.properties[<span class="hljs-string">'sqlMapperPackage'] = properties.getProperty(<span class="hljs-string">"package.xml")
ant.taskdef(
<span class="hljs-symbol"> name: <span class="hljs-string">'mbgenerator',
<span class="hljs-symbol"> classname: <span class="hljs-string">'org.mybatis.generator.ant.GeneratorAntTask',
<span class="hljs-symbol"> classpath: configurations.mybatisGenerator.asPath
)
ant.mbgenerator(<span class="hljs-string">overwrite: <span class="hljs-literal">true,
<span class="hljs-symbol"> configfile: <span class="hljs-string">'src/main/resources/mybatis/generatorConfig.xml', <span class="hljs-string">verbose: <span class="hljs-literal">true) {
propertyset {
propertyref(<span class="hljs-string">name: <span class="hljs-string">'targetProject')
propertyref(<span class="hljs-string">name: <span class="hljs-string">'userId')
propertyref(<span class="hljs-string">name: <span class="hljs-string">'driverClass')
propertyref(<span class="hljs-string">name: <span class="hljs-string">'connectionURL')
propertyref(<span class="hljs-string">name: <span class="hljs-string">'password')
propertyref(<span class="hljs-string">name: <span class="hljs-string">'src_main_java')
propertyref(<span class="hljs-string">name: <span class="hljs-string">'src_main_resources')
propertyref(<span class="hljs-string">name: <span class="hljs-string">'modelPackage')
propertyref(<span class="hljs-string">name: <span class="hljs-string">'mapperPackage')
propertyref(<span class="hljs-string">name: <span class="hljs-string">'sqlMapperPackage')
}
}
}
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
配置好 build.gradle,就可以在 IDEA 的 Gradle 菜单中找到新的 Task:
如果这里没有,可能是 Gradle 没有 build,重新刷新即可:
双击「mybatisGenerate」即可运行,如果配置正确即可运行成功:
注:这里我在 generatorConfig.xml 配置选择的是按注解映射,因此没有 xml 文件生成。
参考资料
Original: https://www.cnblogs.com/xiaofengfeng/p/9200631.html
Author: 小锋神
Title: 在 Gradle 中使用 MyBatis Generator
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/544293/
转载文章受原作者版权保护。转载请注明原作者出处!