在gradle中使用MyBatis Generator生成model,dao,mapper

Mybatis Generator是一个mybatis工具项目,用于生成mybatis的model,mapper,dao持久层代码。Mybatis Generator提供了maven plugin,ant targetjava三种方式启动。现在主流的构建工具是gradle,虽然mybatis generator没有提供gradle的插件,但gradle可以调用ant任务,因此,gradle也能启动Mybatis Generator。

环境说明

  • 数据库:mysql
  • 数据库配置文件:src/main/resources/db-mysql.properties
  • 项目中使用了mybatistk.mybatis:mapper:3.3.2插件

配置依赖

build.gradle 中:
运行ant需要运行环境,也就是相应的jar包,因此添加一个配置
[java]  view plain  copy
  1. configurations {  
  2.     mybatisGenerator  
  3. }  

给这个配置添加依赖

[java]  view plain  copy
  1. repositories {  
  2.     mavenCentral()  
  3. }  
  4. dependencies {  
  5.     mybatisGenerator 'org.mybatis.generator:mybatis-generator-core:1.3.2'  
  6.     mybatisGenerator 'mysql:mysql-connector-java:5.1.36'  
  7.     mybatisGenerator 'tk.mybatis:mapper:3.3.2'  
  8. }  

配置task

build.gradle中,定义一个task,在task里面调用ant

[java]  view plain  copy
  1. def getDbProperties = {  
  2.     def properties = new Properties()  
  3.     file("src/main/resources/db-mysql.properties").withInputStream { inputStream ->  
  4.         properties.load(inputStream)  
  5.     }  
  6.     properties;  
  7. }  
  8. task mybatisGenerate << {  
  9.     def properties = getDbProperties()  
  10.     ant.properties['targetProject'] = projectDir.path  
  11.     ant.properties['driverClass'] = properties.getProperty("jdbc.driverClassName")  
  12.     ant.properties['connectionURL'] = properties.getProperty("jdbc.url")  
  13.     ant.properties['userId'] = properties.getProperty("jdbc.user")  
  14.     ant.properties['password'] = properties.getProperty("jdbc.pass")  
  15.     ant.properties['src_main_java'] = sourceSets.main.java.srcDirs[0].path  
  16.     ant.properties['src_main_resources'] = sourceSets.main.resources.srcDirs[0].path  
  17.     ant.properties['modelPackage'] = this.modelPackage  
  18.     ant.properties['mapperPackage'] = this.mapperPackage  
  19.     ant.properties['sqlMapperPackage'] = this.sqlMapperPackage  
  20.     ant.taskdef(  
  21.             name: 'mbgenerator',  
  22.             classname: 'org.mybatis.generator.ant.GeneratorAntTask',  
  23.             classpath: configurations.mybatisGenerator.asPath  
  24.     )  
  25.     ant.mbgenerator(overwrite: true,  
  26.             configfile: 'db/generatorConfig.xml', verbose: true) {  
  27.         propertyset {  
  28.             propertyref(name: 'targetProject')  
  29.             propertyref(name: 'userId')  
  30.             propertyref(name: 'driverClass')  
  31.             propertyref(name: 'connectionURL')  
  32.             propertyref(name: 'password')  
  33.             propertyref(name: 'src_main_java')  
  34.             propertyref(name: 'src_main_resources')  
  35.             propertyref(name: 'modelPackage')  
  36.             propertyref(name: 'mapperPackage')  
  37.             propertyref(name: 'sqlMapperPackage')  
  38.         }  
  39.     }  
  40. }  

大致思路是:

  • db-mysql.propertis读取配置
  • 把配置注入ant任务
  • 运行ant,生成文件

数据库配置文件,文件在src/main/resources/db-mysql.properties

[java]  view plain  copy
  1. jdbc.driverClassName=com.mysql.jdbc.Driver  
  2. jdbc.url=jdbc:mysql://localhost/mhml  
  3. jdbc.user=root  
  4. jdbc.pass=rootpass  
其他配置, gradle.propertis

[java]  view plain  copy
  1. modelPackage=com.dreamliner.mhml.entity  
  2. #生成的mapper接口类所在包  
  3. mapperPackage=com.dreamliner.mhml.mapper  
  4. #生成的mapper xml文件所在包,默认存储在resources目录下  
  5. sqlMapperPackage=mybatis_mapper  

db/generatorConfig配置

db/generatorConfig.xml文件用于配置生成策略,官网详细介绍

[java]  view plain  copy
  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.         <plugin type="tk.mybatis.mapper.generator.MapperPlugin">  
  8.             <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>  
  9.             <!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->  
  10.             <property name="caseSensitive" value="true"/>  
  11.         </plugin>  
  12.         <commentGenerator>  
  13.             <property name="suppressAllComments" value="true"/>  
  14.         </commentGenerator>  
  15.         <jdbcConnection driverClass="${driverClass}"  
  16.                         connectionURL="${connectionURL}"  
  17.                         userId="${userId}"  
  18.                         password="${password}">  
  19.         </jdbcConnection>  
  20.         <javaModelGenerator targetPackage="${modelPackage}" targetProject="${src_main_java}"/>  
  21.         <sqlMapGenerator targetPackage="${sqlMapperPackage}" targetProject="${src_main_resources}"/>  
  22.         <javaClientGenerator targetPackage="${mapperPackage}" targetProject="${src_main_java}" type="XMLMAPPER"/>  
  23.       <!-- sql占位符,表示所有的表 -->  
  24.         <table tableName="%">  
  25.                     <generatedKey column="epa_id" sqlStatement="Mysql" identity="true" />  
  26.                 </table>  
  27.     </context>  
  28. </generatorConfiguration>  

生成代码

gradle  mybatisGenerate

http://www.chenkaihua.com/2015/12/19/running-mybatis-generator-with-gradle/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值