点击蓝字
关注不迷途

背景
在项目中如何完成动态SQL的生成,根据Mybatis官方文档可知,使用Provider允许构建动态SQL,调用相应的类的方法可以在运行时返回相应的SQL。
也就是SQL是根据运行时传入的参数所决定的,这正时MyBatis的优点之一。
分析
在使用Provider构建之前,先分析项目中的数据关系。
其中一个业务场景为:需要返回类型列表以及每个类型里面对应的加料列表以及商品列表。
所涉及的数据库表有:type、charge、type_charge、product、heat、sugar、product_heat、product_sugar、rank。
type:类型表。

charge:加料表。

type_charge:类型表与加料表的中间表,存储着两表的关系。

product:商品表。

heat:热量表。

product_heat:商品表与热量表的中间表。

sugar:糖量表。

product_sugar:商品表与糖量表的中间表。

rank:规格表。

需要的数据结果为:


因此查询type后需要一对多查询charge、product,查product需要一对多查询sugar、heat。所以需要嵌套地进行一对多查询。
行动
第一步,构建数据结构以接收复杂类型。


第二步,编写TypeMapper,TypeProvider。


第三步,编写ProductMapper,ProductProvider。


第四步,编写HeatMapper,HeatProvider。


第五步,编写SugarMapper,SugarProvider。


思考

喜欢本篇内容顺便点个在看吧

文章转载自长夜难眠,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




