当前位置: 首页 > 网络应用技术

mybatisplus ---条件构造函数和公共接口

时间:2023-03-08 02:32:14 网络应用技术

  包装器转化为包装的含义。在执行MySQL语句时,面对乏味的有条件句子(在哪里,按订单),我们可能希望将这些条件打包成一个类。代码简单易于理解,并且减少了代码减少。

  您可以看到所有箭头最终返回包装器,

  1.组装查询条件

  这里也可以更换之间

  注意:当自定义调节构造函数时,将在添加SQL语句时自动添加SQL语句。如果要添加它,您需要手动添加它

  准备:

  选择cat_id,cat_name,性别,peculiaarity,状态,地点,avatar,iS_delet从cats_deleted = 0 and(ca__name like?and cat_id> =?and cat_id) <= ? AND avatar IS NOT NULL)

  Parameters: %12%(String), 50(Integer), 60(Integer)

  2.组装删除条件 删除条件依旧用的是queryWrapper

  3.条件的优先级

  已知and的优先级大于or,当我们单独在条件构造器中使用一个or时,会将or前后的条件逐一判断出来,最后两两对比。

  queryMapper中的and方法里也可以添加一个条件构造器,在and里我们用一个lambda表达式, 最后在执行sql中会优先执行lambda中的条件判断,因为执行过程中在lambda里的条件判断会加上一对括号

  4.组装select语句

  在实际开发有些地方并不需要用到全部的数据,这时我们可以自定义选择需要查询的字段,来减少无用的数据产生 selectList和selectMaps均可实现以上功能,不同的是,selectList会将字段对应的属性返回,你没有设置的要查询的字段会自动给你赋值为null,而selectMaps不会。同时返回值也不一样,前者返回的是List,后者为Map

  queryWrapper中select方法

  selectList

  selectMap

  5.实现子查询

  在insql方法,添加sql语句以及限制条件的字段

  SELECT cat_id,cat_name,gender,peculiarity,status,place,avatar,is_deleted FROM cat WHERE is_deleted=0 AND (cat_id IN (select cat_id where cat_id>50))))

  进行数据修改时,我们使用UpdateWrapper并使用其集合方法来实现修改。设置将自动缝合并自动缝合条件语句。这里没有物理类,因此将NULL设置为更新的实体参数位置。

  在此之前,我们仍然可以使用QueryMapper来实现修改功能,但是要创建一个对象,将要修改的值放入对象中,这将是麻烦的

  在实际开发过程中,装配条件是常见的功能,这些条件是从用户输入中得出的,并且是可选的。因此,在组装这些条件时,我们必须首先确定用户是否选择了这些条件。如果您没有选择,则不会组装条件,以免影响SQL执行的结果

  第一个方法

  上述实施方案没有问题,但是代码更为复杂。我们可以将重载方法与条件参数一起构建检查条件,并简化第二种编写代码的方法

  原始:https://juejin.cn/post/7095630472876654629