gradle生成mybatis逆向工程 --idea

使用工具
  1. idea
  2. gradle4.9
  3. mybatis
搭建步骤
  1. 首先生成一个标准的Gradle的Springboot项目

  2. 改造build.gradle,在原有基础上添加

configurations {
    mybatisGenerator
}

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

task mybatisGenerate << {
    def properties = getDbProperties()
    ant.properties['targetProject'] = projectDir.path
    ant.properties['driverClass'] = properties.getProperty("jdbc.driver")
    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.properties['entityName'] = properties.getProperty("package.entityName")
    ant.taskdef(
            name: 'mbgenerator',
            classname: 'org.mybatis.generator.ant.GeneratorAntTask',
            classpath: configurations.mybatisGenerator.asPath
    )
    ant.mbgenerator(overwrite: true,
            configfile: 'src/main/resources/generator/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')
            propertyref(name: 'tableName')
            propertyref(name: 'entityName')
        }
    }
}

//原有依赖处需要新增
dependencies {
    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'
}

  1. 新增config.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
jdbc.username=root
jdbc.password=123456

//生成model的位置
package.model = com.pgmmers.radar.model
//生成mapper的位置
package.mapper = com.pgmmers.radar.mapper
//生成xml的位置
package.xml = mapping
  1. 新建generatorConfig.xml
<?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>
    <properties resource="config.properties"/>

    <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <property name="useMapperCommentGenerator" value="true"/>
        <property name="suppressAllComments	" value="false"/>
        <property name="suppressDate" value="false"/>

        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
            <property name="caseSensitive" value="true"/>
        </plugin>
        <plugin type="com.pgmmers.radar.mybatis.plugins.ModelRenamePlugin">
            <property name="postFix" value="PO"></property>
        </plugin>

        <jdbcConnection driverClass="${jdbc.driverClass}"
                        connectionURL="${jdbc.url}"
                        userId="${jdbc.user}"
                        password="${jdbc.password}">
            <property name="serverTimezone" value="Asia/Shanghai"/>
            <property name="nullCatalogMeansCurrent" value="true"/>
        </jdbcConnection>

        <javaModelGenerator targetPackage="com.pgmmers.radar.model"
                            targetProject="src/main/java"/>

        <sqlMapGenerator targetPackage="mapping"
                         targetProject="src/main/resources"/>

        <javaClientGenerator targetPackage="com.pgmmers.radar.mapper"
                             targetProject="src/main/java"
                             type="XMLMAPPER"/>


        <table tableName="radar.USERS" domainObjectName="User">
            <generatedKey column="ID" sqlStatement="JDBC"/>
        </table>
        
    </context>
</generatorConfiguration>
整体目录结果如下图

整体目录结构

然后重新build整个项目,打开gradlef发现other多了一个mybatisGenerate,双击就可以使用了

gradle


版权声明:本文为weixin_40505132原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。