安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

取代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万……
2023年最流行的穿搭时尚性感辣妹风15岁身高2米15!男篮又一天才被挖掘他会成下一个周琦吗?中央财大绿金院高级研究员严展以ESG视角应对灰犀牛,供应链脱限制俄罗斯石油出口价格,俄断气重创欧洲,西方闹剧层出不穷前10月全国工业企业利润同比降3王者荣耀新版本时间已定!本月三款皮肤上线,S30新增三大功能研究人员在聚变燃烧的等离子体中发现奇怪的高能量行为四川银行发布安逸熊猫文旅一卡通4。0版等与不等,我都等了平安人寿深圳朱美音把自己活成一束光国庆假期吉林文旅市场稳中向好日思夜读低调才是真正的智慧

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利