Gradle中使用Mybatis Generator生成bo和mapper

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

环境说明
数据库:mysql
数据库配置文件:src/main/resources/jdbc.properties
项目中使用了通用mapper 3.3.2 插件
项目依赖
在build.gradle中: 运行ant需要运行环境,也就是相应的jar包,因此添加一个配置

configurations {
mybatisGenerator
}
给这个配置添加依赖

dependencies {
mybatisGenerator “org.mybatis.generator:mybatis-generator-core: g e n e r a t o r V e r s i o n " m y b a t i s G e n e r a t o r " m y s q l : m y s q l − c o n n e c t o r − j a v a : {generatorVersion}" mybatisGenerator "mysql:mysql-connector-java: generatorVersion"mybatisGenerator"mysql:mysqlconnectorjava:{mysqlVersion}”
mybatisGenerator “tk.mybatis:mapper:${mybatisMapperVersion}”
}
配置task
def getDbProperties = {
def properties = new Properties()
file(“src/main/resources/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’] = this.modelPackage
ant.properties[‘mapperPackage’] = this.mapperPackage
ant.properties[‘sqlMapperPackage’] = this.sqlMapperPackage
ant.taskdef(
name: ‘mbgenerator’,
classname: ‘org.mybatis.generator.ant.GeneratorAntTask’,
classpath: configurations.mybatisGenerator.asPath
)
ant.mbgenerator(overwrite: true,
configfile: ‘src/main/resources/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’)
}
}
}
大致思路

从jdbc.propertis读取配置
把配置注入ant任务
运行ant生成文件
jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/userdb?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
jdbc.username=root
jdbc.password=admin
其他配置gradle.propertis

#生成实体类所在的包
modelPackage=test.mybatis.pojo
#生成的mapper接口类所在包
mapperPackage=test.mybatis.mapper
#生成的mapper xml文件所在包,默认存储在resources目录下
sqlMapperPackage=mybatis
generatorConfig配置

<?xml version="1.0" encoding="UTF-8"?>
    <jdbcConnection driverClass="${driverClass}"
                    connectionURL="${connectionURL}"
                    userId="${userId}"
                    password="${password}">
    </jdbcConnection>

    <javaTypeResolver >
        <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

    <javaModelGenerator targetPackage="${modelPackage}" targetProject="${src_main_java}">
        <property name="enableSubPackages" value="false"></property>
        <property name="trimStrings" value="true"></property>
    </javaModelGenerator>

    <sqlMapGenerator targetPackage="${sqlMapperPackage}" targetProject="${src_main_resources}">
        <property name="enableSubPackages" value="false"></property>
    </sqlMapGenerator>


    <javaClientGenerator targetPackage="${mapperPackage}" targetProject="${src_main_java}" type="XMLMAPPER">
        <property name="enableSubPackages" value="false"/>
    </javaClientGenerator>

    <table tableName="ta_user" enableCountByExample="false"
           enableDeleteByExample="false"
           enableSelectByExample="false"
           enableUpdateByExample="false">
        <generatedKey column="id" sqlStatement="MySql" identity="true"/>
    </table>
</context>
run生成代码 gradle mybatisGenerate 项目目录结构

dependencies.gradle配置

ext {
//gradle
gradleVersion = ‘2.5’
//junit
junitVersion = ‘4.12’
//log4j
log4jVersion = ‘1.2.16’
//mybatis
mybatisMapperVersion = ‘3.3.2’
//mybatis
mybatisVersion = ‘3.2.6’
//mysql驱动
mysqlVersion = ‘5.1.18’
//mybatis-spring
mybatisSpringVersion = ‘1.3.0’
//generatorVersion
generatorVersion = ‘1.3.2’
}
build.gradle完整配置

group ‘test.mybatis’
version ‘1.0-SNAPSHOT’

apply from: “${rootDir}/gradle/dependencies.gradle”

apply plugin: ‘java’
apply plugin: ‘war’

configurations {
mybatisGenerator
}

repositories {
mavenCentral()
}
dependencies {
mybatisGenerator “org.mybatis.generator:mybatis-generator-core: g e n e r a t o r V e r s i o n &quot; m y b a t i s G e n e r a t o r &quot; m y s q l : m y s q l − c o n n e c t o r − j a v a : {generatorVersion}&quot; mybatisGenerator &quot;mysql:mysql-connector-java: generatorVersion"mybatisGenerator"mysql:mysqlconnectorjava:{mysqlVersion}”
mybatisGenerator “tk.mybatis:mapper:${mybatisMapperVersion}”
}

compileJava {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

repositories {
jcenter()
mavenCentral()
}

dependencies {
// compile ‘tk.mybatis:mapper:3.3.9’
compile “log4j:log4j: l o g 4 j V e r s i o n &quot; c o m p i l e &quot; o r g . m y b a t i s : m y b a t i s : {log4jVersion}&quot; compile &quot;org.mybatis:mybatis: log4jVersion"compile"org.mybatis:mybatis:{mybatisVersion}”
compile “mysql:mysql-connector-java: m y s q l V e r s i o n &quot; c o m p i l e &quot; j u n i t : j u n i t : {mysqlVersion}&quot; compile &quot;junit:junit: mysqlVersion"compile"junit:junit:{junitVersion}”
compile “org.mybatis:mybatis-spring:${mybatisSpringVersion}”
}

def getDbProperties = {
def properties = new Properties()
file(“src/main/resources/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’] = this.modelPackage
ant.properties[‘mapperPackage’] = this.mapperPackage
ant.properties[‘sqlMapperPackage’] = this.sqlMapperPackage
ant.taskdef(
name: ‘mbgenerator’,
classname: ‘org.mybatis.generator.ant.GeneratorAntTask’,
classpath: configurations.mybatisGenerator.asPath
)
ant.mbgenerator(overwrite: true,
configfile: ‘src/main/resources/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出现mybatisGenerate

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值