游戏电视苹果数码资讯常识
家庭阅读
常识投稿
常识美丽
时装彩妆
资讯历史
明星安卓
数码生活
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

干掉XMLMapper,新出的FluentMybatis真香

2月6日 菩提门投稿 造句
  使用fluentmybatis可以不用写具体的xml文件,通过javaapi可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一。
  不再需要在Dao中组装查询或更新操作,在xml或mapper中再组装参数。
  那对比原生Mybatis,MybatisPlus或者其他框架,FluentMybatis提供了哪些便利呢?需求场景设置
  我们通过一个比较典型的业务需求来具体实现和对比下,假如有学生成绩表结构如下:
  现在有需求:
  统计2000年三门学科(英语,数学,语文)及格分数按学期,学科统计最低分,最高分和平均分,且样本数需要大于1条,统计结果按学期和学科排序
  我们可以写SQL语句如下
  那上面的需求,分别用fluentmybatis,原生mybatis和Mybatisplus来实现一番。三者实现对比使用fluentmybatis来实现上面的功能
  具体代码:
  https:gitee。comfluentmybatisfluentmybatisdocstreemasterspringbootdemo
  我们可以看到fluentapi的能力,以及IDE对代码的渲染效果。换成mybatis原生实现效果
  1。定义Mapper接口publicinterfaceMyStudentScoreMapper{ListMapString,ObjectsummaryScore(SummaryQueryparas);}
  2。定义接口需要用到的参数实体SummaryQuery
  3。定义实现业务逻辑的mapperxml文件selectidsummaryScoreresultTypemapparameterTypecn。org。fluent。mybatis。springboot。demo。mapper。SummaryQueryselectschoolterm,subject,count(score)ascount,min(score)asminscore,max(score)asmaxscore,avg(score)asmaxscorefromstudentscorewhereschoolterm{schoolTerm}andsubjectinforeachcollectionsubjectsitemitemopen(close)separator,{item}foreachandscore{score}andisdeleted0groupbyschoolterm,subjecthavingcount(score){minCount}orderbyschoolterm,subjectselect
  4。实现业务接口(这里是测试类,实际应用中应该对应Dao类)
  总之,直接使用mybatis,实现步骤还是相当的繁琐,效率太低。换成mybatisplus的效果怎样呢?换成mybatisplus实现效果
  mybatisplus的实现比mybatis会简单比较多,实现效果如下
  如红框圈出的,写mybatisplus实现用到了比较多字符串的硬编码(可以用Entity的getlambda方法部分代替字符串编码)。
  字符串的硬编码,会给开发同学造成不小的使用门槛,个人觉得主要有2点:字段名称的记忆和敲码困难Entity属性跟随数据库字段发生变更后的运行时错误
  其他框架,比如TkMybatis在封装和易用性上比mybatisplus要弱,就不再比较了。生成代码编码比较fluentmybatis生成代码设置publicclassAppEntityGenerator{staticfinalStringurljdbc:mysql:localhost:3306fluentmybatisdemo?useSSLfalseuseUnicodetruecharacterEncodingutf8;publicstaticvoidmain(String〔〕args){FileGenerator。build(Abc。class);}Tables(数据库连接信息urlurl,usernameroot,passwordpassword,Entity类parentpackage路径basePackcn。org。fluent。mybatis。springboot。demo,Entity代码源目录srcDirspringbootdemosrcmainjava,Dao代码源目录daoDirspringbootdemosrcmainjava,如果表定义记录创建,记录修改,逻辑删除字段gmtCreatedgmtcreate,gmtModifiedgmtmodified,logicDeletedisdeleted,需要生成文件的表(表名称:对应的Entity名称)tablesTable(value{studentscore}))staticclassAbc{}}mybatisplus代码生成设置publicclassCodeGenerator{staticStringdbUrljdbc:mysql:localhost:3306fluentmybatisdemo?useSSLfalseuseUnicodetruecharacterEncodingutf8;TestpublicvoidgenerateCode(){GlobalConfigconfignewGlobalConfig();DataSourceConfigdataSourceConfignewDataSourceConfig();dataSourceConfig。setDbType(DbType。MYSQL)。setUrl(dbUrl)。setUsername(root)。setPassword(password)。setDriverName(Driver。class。getName());StrategyConfigstrategyConfignewStrategyConfig();strategyConfig。setCapitalMode(true)。setEntityLombokModel(false)。setNaming(NamingStrategy。underlinetocamel)。setColumnNaming(NamingStrategy。underlinetocamel)。setEntityTableFieldAnnotationEnable(true)。setFieldPrefix(newString〔〕{test})。setInclude(newString〔〕{studentscore})。setLogicDeleteFieldName(isdeleted)。setTableFillList(Arrays。asList(newTableFill(gmtcreate,FieldFill。INSERT),newTableFill(gmtmodified,FieldFill。INSERTUPDATE)));config。setActiveRecord(false)。setIdType(IdType。AUTO)。setOutputDir(System。getProperty(user。dir)srcmainjava)。setFileOverride(true);newAutoGenerator()。setGlobalConfig(config)。setDataSource(dataSourceConfig)。setStrategy(strategyConfig)。setPackageInfo(newPackageConfig()。setParent(com。mp。demo)。setController(controller)。setEntity(entity))。execute();}}FluentMybatis特性一览
  三者对比总结
  看完3个框架对同一个功能点的实现,各位看官肯定会有自己的判断,笔者这里也总结了一份比较。
  来源:https:juejin。cnpost6886019929519177735
评论 转载

造句:干掉新出的真
造句:干掉新出的真香
惊艳于红警开源代码?赏心悦目的代码注释,我们也可以1。前言红警1的开源代码重现江湖,这个20年前,甚至25年前的代码,被我们所有的后来者所惊叹,这才是一个艺术品(art)一般的存在。其优秀的代码才是一款RTS游戏能够风靡……好看的动漫日本动漫排行每一部都很受超级宅女青睐动漫衍生出来的动漫超级受欢迎,下面整理了10部好看的动漫日本动漫排行,看一样停不下来,宅男宅女都非常的喜欢。1、《与僧侣的交合之夜》brdivclassconten……日漫中好看的里番推荐20部里番推荐(图)日漫中好看的里番推荐:20部里番推荐(图)说起里番相信不少宅男老司机见解独到,日漫中那些大胸翘腿的性感萌妹子,特别是污动漫中的里番,不知俘获了多少纯情少年的心,那么有什么……日本动漫十大日漫综合精选的10部日本福利动漫日本是世界动漫强国,在全球鲜有对手,其动漫发展的模式具有鲜明的民族特色而不失创新和吸引力,下面本文就介绍日本动漫十大,综合精选的日本福利动漫,快去看看。1日本动漫十大推荐……科技改变生活,有哪些宝藏智能设备,让你眼前一亮了?1。新品手机。因为我自己最近就是手机坏了,然后不停地比较各种新手机。想感叹的绝对是,只要你的钱跟得上,那么永远新品是最靓。现在的新手机无论是从内存,硬件还是到软件,全部都在升级……定档了!9月15日,iPhone十三香要来了!华为也有大动作备受关注的苹果iPhone13终于要与公众见面了,定档9月15日,有意思的是,选在9月15之前,9月13日华为也将召开智慧终端办公新品发布会,据悉届时华为将发布一款14寸的大屏……十大好看日本限制级动漫经典神作看着就是酸爽十大最好看日本限制级动漫。在西方人眼中,题材涉及了儿童不宜的内容,但是依然好看的动画作品十部。它们分别是哪些呢,你又看过多少呢?十大好看日本限制级动画日本限制级动画……有什么好的拍游戏视频的软件吗?首先推荐bandicam(我用了好几年的bandicam,用出感情了),但是bandicam会有录制掉帧的小问题,配置好可以忽略这个问题。其次,obs的录制功能也不错。……每年花800亿美元进口,99中国市场被美韩垄断,存储芯片终于芯片是中国发展的致命弱点,在全球芯片短缺的情况下,全球市场都损失惨重,近日,就连大众汽车的CEO迪斯,也在接受美国媒体CNBC采访时表示,由于芯片短缺,大众甚至可能实去中国市场……干掉XMLMapper,新出的FluentMybatis真香使用fluentmybatis可以不用写具体的xml文件,通过javaapi可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一。不再需要在Dao中组装查询……唐三为什么杀死独孤博,唐三杀死独孤博了吗?看过斗罗的人们都知道唐三和独孤博其实关系很不错的,可是到了最后唐三却杀死了独孤博,那么唐三为什么杀死独孤博呢?原因是什么?据看过的人称没有人能够猜出来唐三的动机。1唐三为什么杀……真无线蓝牙耳机探底,百元带显示屏!体验aigoT23随着蓝牙优势凸显,以及手机厂商取消3。5mm耳机孔的设计,身边越来越多的人戴上了蓝牙耳机。只是市场上的无线耳机品类繁多,看得人眼花缭乱,中高端产品数百上千元,入门几十上百元,而……
班长殿下牛骏峰邢菲欢喜冤家甜宠初显班长殿下首播火力全开牛骏峰邢菲CP感十足越活越来劲热播朱时茂吕佳容父女关系引误会Solidworks图号代号分离宏代码(两段空格分离)中国移动SDWAN组网服务,进军医疗行业领域郑雅文黑色灯塔收官检察官搞事业征服观众郑雅文黑色灯塔开播美飒检察官今日开辩成毅迷局破之深潜开机热血演绎多面高能特工数牍科技亮相服贸会隐私计算产品Tusita助力反洗钱微信拟推出聊天记录云备份功能每年付费180元,你能接受吗手机充电有讲究陈昊宇我才不要和你做朋友呢开播突破自我演绎二哈东北女孩
龟甲冬青茎基腐病的防治方法CBA广东队欲重建,五年重新登顶,三少加8小将加三混血儿挑大傅雷家书读书笔记水城文学土家族贵州刘一君玉兰辞(外三首)闪克(由词目及其释义等构成的中文知识性百科条目)我的弟弟美丽的春天深度剖析CMOSFinFETSOI和GaN工艺技术往事春天的灿烂小学六年级作文瓤则骑在羊背上,拿起一块石头,使劲砸下去木根根连载18实验小学校年学生体质健康测试情况分析报告
©2025网站地图最近更新文明上网我要投诉