城市直播房产教育博客汽车
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

取代MybatisGenerator,这款代码生成神器更简单

6月2日 逆落雪投稿
  作为一名Java后端开发,日常工作中免不了要生成数据库表对应的持久化对象PO,操作数据库的接口DAO,以及CRUD的XML,也就是mapper。
  MybatisGenerator是MyBatis官方提供的一个代码生成工具,完全可以胜任这个工作,不过最近在开发编程猫开源网站的时候试用了一下MyBatisPlus官方提供AutoGenerator,发现配置更简单,开发效率更高!于是就来给小伙伴们安利一波。
  来个GIF感受一下AutoGenerator生成代码的快感吧。
  一、使用MybatisGenerator
  为了形成鲜明的对比,我们先来使用MybatisGenerator生成一次代码,感受一下整个过程。
  第一步,在pom。xml文件中添加MySQLMyBatis的依赖(MybatisGenerator的前置条件)。!MySQL连接池dependencygroupIdmysqlgroupIdmysqlconnectorjavaartifactIdversion{mysql。version}versiondependency!MyBatis的SpringBootstarterdependencygroupIdorg。mybatis。spring。bootgroupIdmybatisspringbootstarterartifactIdversion2。2。2versiondependency复制代码
  添加完成后,一定要执行一次Maven重载(见下图),确保MyBatis的依赖加载完毕后再执行第二步。
  否则下一步可能不通过,但又得不到任何错误提示。不要问我为什么,踩过坑后痛苦的领悟。
  添加完成后,可以通过Maven插件来生成代码,也可以通过Java代码来生成代码,这里以Maven插件的形式来演示。Java代码的形式可参照MybatisGenerator:
  mybatis。orggeneratorr
  第二步,在pom。xml的MyBatisGenerator插件,先来看一下整体的结构图,注意是在buildplugins下节点下添加。
  首先是MyBatisGenerator插件,目前最新版是1。4。0,我们采用上一个稳定版本1。3。7,稳一点。groupIdorg。mybatis。generatorgroupIdmybatisgeneratormavenpluginartifactIdversion1。3。7version复制代码
  只添加插件还不够,还需要对其进行配置,我们使用configurationFile元素来指定一个配置文件mybatisgeneratorconfig。xml:configurationFilesrcmainresourcesmybatisgeneratorconfig。xmlconfigurationFile复制代码
  来看一下mybatisgeneratorconfig。xml的内容。generatorConfigurationcontextidmyContexttargetRuntimeMyBatis3defaultModelTypeflat!注释commentGenerator!是否不生成注释propertynamesuppressAllCommentsvaluetruecommentGenerator!jdbc连接jdbcConnectiondriverClasscom。mysql。cj。jdbc。DriverconnectionURLjdbc:mysql:ip:3306codingmoretiny02?useUnicodetruecharacterEncodingutf8serverTimezoneAsiaShanghaiuseSSLfalseuserIdcodingmoretiny02password123456!高版本的mysqlconnectorjava需要设置nullCatalogMeansCurrenttruepropertynamenullCatalogMeansCurrentvaluetruejdbcConnection!类型转换javaTypeResolverpropertynameforceBigDecimalsvaluetruejavaTypeResolver!生成实体类地址javaModelGeneratortargetPackagecom。codingmore。mbg。potargetProjectsrcmainjava!是否针对string类型的字段在set方法中进行修剪,默认falsepropertynametrimStringsvaluetruejavaModelGenerator!生成Mapper。xml文件sqlMapGeneratortargetPackagecom。codingmore。mbg。mappertargetProjectsrcmainresourcessqlMapGenerator!生成XxxMapper。java接口javaClientGeneratortargetPackagecom。codingmore。mbg。daotargetProjectsrcmainjavatypeXMLMAPPERjavaClientGeneratortableschematableNameuserdomainObjectNameUserenableCountByExamplefalseenableDeleteByExamplefalseenableSelectByExamplefalseenableUpdateByExamplefalseselectByExampleQueryIdfalsetablecontextgeneratorConfiguration复制代码配置文件至少得包含一个contextcommentGenerator用来配置生成的注释jdbcConnection用来链接数据库javaTypeResolver配置JDBC与Java的类型转换规则javaModelGenerator配置po生成的包路径和项目路径sqlMapGenerator配置mapper。xml文件生成的目录javaClientGenerator配置mapper。java文件生成的目录一个table对应一张表,如果想同时生成多张表,需要配置多个table
  更多配置信息可以参照下面这篇文章:
  juejin。cnpost684490
  由于数据库表可能会发生变动,因此我们需要追加一个配置true,允许覆盖旧的文件。为了防止我们编写的SQL语句被覆盖掉,MyBatisGenerator只会覆盖旧的po、dao、而mapper。xml不会覆盖,而是追加。
  MybatisGenerator需要链接数据库,所以还需要添加数据库驱动依赖,就像这样:configurationconfigurationdependencygroupIdmysqlgroupIdmysqlconnectorjavaartifactIdversion{mysql。version}versiondependency复制代码
  这样就会显得比较冗余,因为我们之前添加过了。好在Maven提供了includeCompileDependencies属性,可以让我们在插件中引用之前添加的依赖。includeCompileDependenciestrueincludeCompileDependencies复制代码
  到此为止,mybatisgeneratormavenplugin就算是配置完成了,完整内容如下所示:buildpluginsplugingroupIdorg。mybatis。generatorgroupIdmybatisgeneratormavenpluginartifactIdversion1。3。7versionconfigurationconfigurationFilesrcmainresourcesmybatisgeneratorconfig。xmlconfigurationFileoverwritetrueoverwriteincludeCompileDependenciestrueincludeCompileDependenciesconfigurationpluginpluginsbuild复制代码
  配置完成后可以双击运行Maven的插件MybatisGenerator,没有问题的话,可以看到生成后的文件。
  二、使用MyBatisPlus的AutoGenerator
  MyBatisPlus(简写MP)是MyBatis的增强工具,官方宣称MP和MyBatis的关系就好像魂斗罗中的1P和2P,可谓好基友,天下走。
  AutoGenerator是MyBatisPlus推出的代码生成器,可以快速生成Entity、Mapper、MapperXML、Service、Controller等各个模块的代码,比MybatisGenerator更强大,开发效率更高。
  通过前面的体验,想必大家确实感觉到了MybatisGenerator的繁琐,接下来,我们来体验一下AutoGenerator,对比过后,大家心里就有答案了。
  第一步,在pom。xml文件中添加AutoGenerator的依赖。dependencygroupIdcom。baomidougroupIdmybatisplusgeneratorartifactIdversion3。4。1versiondependency复制代码
  第二步,添加模板引擎依赖,MyBatisPlus支持Velocity(默认)、Freemarker、Beetl,这里使用默认的Velocity引擎。dependencygroupIdorg。apache。velocitygroupIdvelocityenginecoreartifactIdversion2。3versiondependency复制代码
  第三步,进行全局配置。全局配置GlobalConfiggcnewGlobalConfig();StringprojectPathSystem。getProperty(user。dir);gc。setOutputDir(projectPathsrcmainjava);gc。setAuthor(沉默王二);gc。setOpen(false);gc。setDateType(DateType。ONLYDATE);gc。setSwagger2(true);gc。setIdType(IdType。AUTO);复制代码
  第四步,配置数据源。数据源配置DataSourceConfigdscnewDataSourceConfig();dsc。setUrl(jdbc:mysql:ip:3306codingmoretiny02?useUnicodetruecharacterEncodingutf8serverTimezoneAsiaShanghai);dsc。setDriverName(com。mysql。cj。jdbc。Driver);dsc。setUsername(codingmoretiny02);dsc。setPassword(123456);复制代码
  第五步,配置包。包配置PackageConfigpcnewPackageConfig();pc。setParent(top。codingmore。mpg);复制代码
  更多配置项可以到官方查看:
  baomidou。compages06157
  示例代码示例如下所示:publicclassCodeGenerator{publicstaticvoidmain(String〔〕args){代码生成器AutoGeneratormpgnewAutoGenerator();GlobalConfiggcnewGlobalConfig();StringprojectPathSystem。getProperty(user。dir);gc。setOutputDir(projectPathsrcmainjava);gc。setAuthor(沉默王二);mpg。setGlobalConfig(gc);DataSourceConfigdscnewDataSourceConfig();dsc。setDriverName(com。mysql。cj。jdbc。Driver);mpg。setDataSource(dsc);mpg。execute();}}复制代码
  再来看一下运行后的效果,可以看到数据库表对应的controller、service、entity、mapper等等全有了爽歪歪:
  三、总结对比
  对比Mybatis的Generator和MyBatisPlus的AutoGenerator,就可以得出这样一条结论:后者的配置更简单,开发效率也更高,功能也更强大可快速生成Mapper、Model、Service、Controller层代码。
  MyBatisPlus的确配得上Plus啊,确实优秀。
  作者:沉默王二
  链接:https:juejin。cnpost7064387392152535047
搜索 投诉 评论 转载

周围太多这样的人我是看不懂活了28年身边一直发现有一种人都是二十到三十几岁的,对自己的人生大致方向目标都不知道,家里还是老房子没老婆没存款一事无成努力存钱做自己想做的事或者去游一圈中国的美好山河体验人生……取代MybatisGenerator,这款代码生成神器更简单作为一名Java后端开发,日常工作中免不了要生成数据库表对应的持久化对象PO,操作数据库的接口DAO,以及CRUD的XML,也就是mapper。MybatisGenera……湖人浓眉2换1?字母哥三个第一,库里断崖式领先,贝弗利好消息本赛季NBA常规赛相当的有意思,该打出战绩的球队,却一直在输球,该摆烂的球队,他们却屡屡赢球。其实这就是NBA的魅力,你永远无法正确的预测一件事情。本赛季NBA常规赛样本不少,……曝星环式镜头华为Mate50系列,华为Mate40跌至大米价据了解,华为Mate50系列全系采用星环式的镜头设计,设计语言高度统一。其中华为Mate50并没有打上XMAGE的LOGO,其它三款手机则有显著的XMAGE标志,显然入门款在影……CBA孙悦妻子海上度假!穿超短裙,开豪车与新男友游玩,离婚实目前CBA即将迎来第二阶段的比赛,目前各支球队已经开始了集训工作,而第二阶段的比赛时间已经确定,那就是12月1日到1月18日,第二阶段的比赛结束后正好是我们的春节,CBA球队也……洗发水想说爱你不容易洗发水在我们的日常用品必需度排行中,绝对位居前列。特别是在格外追求外在美的今天,洗发水的好坏直接关系到爱美男生女生们幸福度。那么如何分辨自己买的洗发水是不是合适自己?感觉……王者荣耀发育路百花齐放,又有新人主播崛起,射手操作超强在王者荣耀这个游戏中,经常会出现很多强力的主播,他们的操作都是非常强悍的,比如最近又有一个新人主播崛起了,他就是斗鱼的主播摇热,一个精通射手的主播,本月还拿到了公孙离跟元芳的国……陈萌怀孕后到医院产检,大衣嫂全程陪同,我们都小看朱单伟了陈萌怀孕后到医院产检,大衣嫂全程陪同,陈亚男的脸已经被打肿了或许是知道十月份是个普天同庆的日子,最近娱乐圈里的喜事也不少,先是奶茶妹妹章泽天被曝光二胎的消息,最近这几天,……逛闽江之心享文化盛宴东南网10月4日讯(福建日报记者卞军凯)闽江璀璨灯光秀、两岸青年街舞秀、《我和我的祖国》主题创意快闪这个国庆长假,福州闽江之心热闹非凡,每天举办民族舞蹈、歌曲演唱、杂技表演等精……喝凉水都塞牙?洗个澡都能赛季报销,诺维茨基系鞋带导致脚踝扭伤伤病无疑是每一位职业运动员都不愿意面对的东西,但是,在运动员漫长的生涯中,总会遇到或多或少的伤病,即便是强如联盟公认的铁人詹姆斯,也因为伤病缺席过半个赛季的比赛。而不同于在场上……国安新帅胆子真不小!本轮将于大宝放到替补席,一分钟都不让上日前,北京国安在本轮中超比赛跟浙江队狭路相逢。这场比赛经过90分钟激战,最终以2比2战平。国安在2比1领先的情况下,被对手点球追平,让很多球迷都觉得惋惜。球迷直言防守穆谢奎的梅……蓄势待发,第五届四川文旅会即将亮相四川乃至西部地区旅游资源丰富,倾力打造‘雪山下的公园城市’拥有A级景区769家,各类生态旅游度假区、研学基地、营地旅游装备需求旺盛,截止2021年,四川旅游总收入达到0。73万……
9月汽车质量投诉排名理想ONE上榜,宝马仍是重灾区草帽姐全家出动,赴北京探望恩人毕福剑,博眼球还是真感恩?爸爸给孩子取名伍拾忆,妈妈名字不慎曝光,网友看后笑出鹅叫徐长江晨趣湖人季前赛首战詹眉威表现亮眼,首发阵容你打几分?旅行是人生最好的投资,见识和阅历,会让你越来越值钱青甘大环线之旅网红U型公路大柴旦翡翠湖恶魔之眼华为Mate50系列9月见!余承东华为手机开始回来了直播在爆假货?戚薇工作室表示已报警处理适合1日游的28个城市世界制造业大会在合肥开幕日本世乒赛大名单公布!小张本和伊藤挂帅!中日乒乓即将大决战?
产后可以吃猪肝汤是吗微信钱包可以转到支付宝吗纽约时装周2023春夏季流行色趋势报告什么是植物黄油卤菜铺作文范文雅诗兰黛粉底液和气垫哪个好?赵露思个人贡献度反超热巴,长歌行把大女主拍成了百花齐放漂白剂会在手上残留多久绿窗诗十八首其八改版笔记图形篇电脑怎么从bios还原系统2021年通用工作的格言合集77条

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁