使用fluentmybatis,不需要编写具体的xml文件,可以通过javaapi构造更复杂的业务sql语句,从而实现集成代码逻辑和sql逻辑。不再需要在Dao中组装查询或更新操作,然后在xml或mapper中组装参数。与原生的Mybatis、MybatisPlus或者其他框架相比,FluentMybatis提供了哪些便利?下面通过一个典型的业务需求来实现和比较需求场景设置。如有学生成绩表结构如下:createtable`student_score`(idbigintauto_incrementcomment'主键ID'主键,student_idbigintnotnullcomment'学号,Gene_mantinyintDefault0NotNullComment'性别,0:Female;1:Male',SCHOOL_TERMIntNULLComment',SubjectVarchar(30)NULLComment',ScoreIntNullComment',datetimenotnullcomment'记录创建时间',gmt_modifieddatetimenotnullcomment'记录最后修改时间',is_deletedtinyintdefault0notnullcomment'tombstoneidentifier')engine=InnoDBdefaultcharset=utf20year0statistics;现在三个科目('英语','数学','语文')的及格分数按学期分类,科目统计的最低分,最高分和平均分,样本数需要大于1,统计结果按学期和学科排序。我们可以这样写SQL语句如下selectschool_term,subject,count(score)ascount,min(score)asmin_score,max(score)asmax_score,avg(score)asmax_scorefromstudent_scorewhereschool_term>=2000andsubjectin('English','Mathematics','Chinese')和score>=60andis_deleted=0groupbyschool_term,subjecthavingcount(score)>1orderbyschool_term,subject;使用fluentmybatis、nativemybatis和Mybatisplus实现三者的对比。使用fluentmybatis实现以上功能,我们可以在代码上看到fluentapi的能力和IDE的渲染效果。改为mybatis原生实现效果定义Mapper接口publicinterfaceMyStudentScoreMapper{List