在gradle中使用mybatis的生成代码类的时候,因为gradle不像maven那样直接支持生成工具,需要我们通过ant来手写task来运行,我这里使用的是mysql8数据库,先介绍下遇到的问题,在数据库的test schema里新建了一个表user,因为使用的是MySQL8,所以想当然的链接数据库的mysql-connector-java的版本使用了最新的8.0.11版本,因为有些时候会遇到MySQL8最新的密码问题(暂时忘记那个具体名称了),所以才有了这样的选择,悲剧的就是因为这个想当然的选择,在生成代码的时候都一直没有生成test schema中的user信息,哪怕是在xml文件的table上添加了schema说明也没有生成想要的user信息,倒是生成了mysql 的user表信息,这个就让人相当郁闷啊,于是在网上找啊,查啊,所有文章都没有出现过这种问题,到底是怎么回事啊,回头看一下以前用maven写的代码生成器,好像也没有什么不同啊,不就是换了一个mysql-connector-java连接版本嘛,哟呵,刚才说什么,换了一个版本,赶紧的把版本换成5.1.46,一执行,我晕,成功了,看来版本不能随便换啊,留下这个做个纪念,下次就记住了。下面整理下gradle的mybatis-generator整合。
1.在resources目录下新建一个mybatisgenerator文件夹,用于存放数据库连接的mybatisGeneratorinit.properties和生成代码文件配置的generatorConfig.xml文件:
mybatisGeneratorinit.properties配置文件如下:
#Mybatis Generator configuration project =src/main/java resources=src/main/resources jdbc_driver=com.mysql.jdbc.Driver jdbc_url=jdbc:mysql://localhost:3306/saas_demo?useUnicode=true&characterEncoding=UTF-8 jdbc_user=root jdbc_password= # 生成实体类所在的包 package_model=dimu.ssm.model # 生成 mapper 类所在的包 package_mapper=dimu.ssm.mapper # 生成 mapper xml 文件所在的包,默认存储在 resources 目录下 package_xml=mappers
注意:jdbc_url=jdbc:mysql://localhost:3306/saas_demo?useUnicode=true&characterEncoding=UTF-8这里中的jdbc_url多出了一个jdbc,需要删除。
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> <!--classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置 可选 --> <!--<classPathEntry location="D:\generator_mybatis\mysql-connector-java-5.1.24-bin.jar" /> --> <!-- 一个数据库一个context --> <!--defaultModelType="flat" 大数据字段,不分表 --> <context id="MysqlTables" targetRuntime="MyBatis3" defaultModelType="flat"> <property name="autoDelimitKeywords" value="true" /> <property name="beginningDelimiter" value="`" /> <property name="endingDelimiter" value="`" /> <property name="javaFileEncoding" value="utf-8" /> <plugin type="org.mybatis.generator.plugins.SerializablePlugin" /> <plugin type="org.mybatis.generator.plugins.ToStringPlugin" /> <!-- 注释 --> <commentGenerator > <property name="suppressAllComments" value="false"/><!-- 是否取消注释 --> <property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳--> </commentGenerator> <!-- jdbc连接 --> <jdbcConnection driverClass="${jdbc_driver}" connectionURL="${jdbc_url}" userId="${jdbc_user}" password="${jdbc_password}" /> <!-- 类型转换 --> <javaTypeResolver> <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) --> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成实体类地址 --> <javaModelGenerator targetPackage="${modelPackage}" targetProject="${src_main_java}" > <property name="enableSubPackages" value="false"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成mapxml文件 --> <sqlMapGenerator targetPackage="${sqlMapperPackage}" targetProject="${src_main_resources}" > <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成mapxml对应client,也就是接口dao --> <javaClientGenerator targetPackage="${mapperPackage}" targetProject="${src_main_java}" type="XMLMAPPER" > <property name="enableSubPackages" value="false" /> </javaClientGenerator> <table tableName="user" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true"> <property name="useActualColumnNames" value="false" /> <generatedKey column="id" sqlStatement="Mysql" identity="true" /> </table> </context> </generatorConfiguration>
2.在build.gradle在定义如下:
2.1.首先定义一个configurations
configurations{ mybatisGenerator }
2.2.在dependencies中定义mybatisGenerator专门依赖的jar,因为仅仅是生成工具需要,所以通过这种方式添加依赖,避免其他情况下使用
mybatisGenerator 'org.mybatis.generator:mybatis-generator-core:1.3.7' mybatisGenerator 'tk.mybatis:mapper:4.0.3' mybatisGenerator 'mysql:mysql-connector-java:5.1.46'
2.3.定义task相关
def getDbProperties = { def properties = new Properties() file("/src/main/resources/mybatisgenerator/mybatisGeneratorinit.properties").withInputStream { inputStream -> properties.load(inputStream) } properties } task mybatisGenerate << { def dbProperties = getDbProperties() ant.properties['targetProject'] = projectDir.path ant.properties['jdbc_driver'] = dbProperties.getProperty("jdbc_driver") ant.properties['jdbc_url'] = dbProperties.getProperty("jdbc_url") ant.properties['jdbc_user'] = dbProperties.getProperty("jdbc_user") ant.properties['jdbc_password'] = dbProperties.getProperty("jdbc_password") //ant.properties['src_main_java'] = sourceSets.main.java.srcDirs[0].path ant.properties['src_main_java'] = dbProperties.getProperty("project") //ant.properties['src_main_resources'] = sourceSets.main.resources.srcDirs[0].path ant.properties['src_main_resources'] = dbProperties.getProperty("resources") ant.properties['modelPackage'] = dbProperties.getProperty("package_model") ant.properties['mapperPackage'] = dbProperties.getProperty("package_mapper") ant.properties['sqlMapperPackage'] = dbProperties.getProperty("package_xml") ant.taskdef( name: 'mbgenerator', classname: 'org.mybatis.generator.ant.GeneratorAntTask', classpath: configurations.mybatisGenerator.asPath ) ant.mbgenerator(overwrite: true, configfile: '..\\saas-backend-demo\\src\\main\\resources\\mybatisgenerator\\generatorConfig.xml', verbose: true) { propertyset { propertyref(name: 'targetProject') propertyref(name: 'jdbc_user') propertyref(name: 'jdbc_driver') propertyref(name: 'jdbc_url') propertyref(name: 'jdbc_password') propertyref(name: 'src_main_java') propertyref(name: 'src_main_resources') propertyref(name: 'modelPackage') propertyref(name: 'mapperPackage') propertyref(name: 'sqlMapperPackage') } } }
定义好以上的时候,刷新gradle,你将会看见如下图的task
通过运行该mybatisGenerate的task就会生成相关的代码了。
这里参考了https://github.com/kingcos/MyBatisGenerator-Tool 的代码,谢谢提供的参考。
相关推荐
Android Studio Gradle离线包下载,其中包含:gradle-1.10-all.zip; gradle-1.11-all.zip; gradle-2.0-all.zip; gradle-2.2.1-all.zip; gradle-2.2-all.zip; gradle-2.3-all.zip;gradle-2.10-all.zip; gradle-...
gradle-6.7-all.zip https://code.aliyun.com/kar/gradle-all-zip/raw/master/gradle-6.7-all.zip gradle-6.6.1-all.zip https://code.aliyun.com/kar/gradle-all-zip/raw/master/gradle-6.6.1-all.zip gradle-6.6-...
Android gradle 资源下载 gradle-6.7.1-all.zip gradle-4.10.1-all.zip
gradle-6.7.1-bin.zip gradle-6.7.1-bin.zip gradle-6.7.1-bin.zipgradle-6.7.1-bin.zip gradle-6.7.1-bin.zip gradle-6.7.1-bin.zip gradle-6.7.1-bin.zipgradle-6.7.1-bin.zipgradle-6.7.1-bin.zip gradle-6.7.1-...
文件包含gradle-6.0.1-all.zip和gradle-6.0.1-bin.zip 下载后放到本地目录,设置distributionUrl即可进行编译 如需其他资源可以留言
gradle-8.0-all和gradle-8.0-bin最新版本,因国内下载极其慢,我就上传上来了,希望大家可以用到。请尽快深刻通过!
Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。 gradle-4.4-all....
mybatis-plus-3.0 源码(mybatis-plus-3.0.zip)
基于MySQL8、MyBatis3.5.4、MyBatisGenerator1.40 以Scott用户下的dept和emp表为例,有关这两个表的注释请参考:https://editor.csdn.net/md/?articleId=101469279 解决生成实体类注释不能正确读取数据库中注释的...
gradle-5.6.4-all.zip gradle-5.4.1-all.zip gradle-5.1.1-all.zip gradle-4.10.1-all.zip gradle-4.4-all.zip
文件比较大,建议使用迅雷下载,能增加下载成功率。 官方下载地址:https://services.gradle.org/distributions/ 使用方法: (记得先解压出gradle-5.4.1-all.zip) 1、用记事本,修改项目目录\gradle\wrapper下的,...
gradle-8.2-bin.zip
gradle-4.10.1-all.zip 安卓studio 3.3.2适用。不同的studio版本对gradle的版本不一样。这个是本人官网下载的,原版。适用方法:下载后,文件后缀名是rar,请解压,得到gradle-4.10.1-all.zip这个文件。然后将这个...
gradle-6.7-bin.zip 分享了,官网站下载的下载地址: ...
gradle-4.7-all.zip 离线包下载.zip。官网下载不成功的,嫌官网下载速度慢的,可以直接在这里下载
gradle-4.4-rc-2-src.zip和gradle-4.4-rc-2-src.zip.sha256,看准是不是需要这个,再下载。
gradle-7.3.3-bin
解决官网下载慢的问题 gradle-6.8.3-all.zip gradle-6.8.3-bin.zip
gradle-7.2-bin.rar
下载后须解压,有俩文件,gradle-4.1-all.zip压缩包直接使用,另有使用说明文件: 使用说明: 1.打开C:\Users\Administrator\.gradle\wrapper\dists (Administrator可能根据你使用账户名称而改变) 2.找到对应版本...