gpt4 book ai didi

mybatis createcriteria和or的区别说明

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章mybatis createcriteria和or的区别说明由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

createcriteria和or的区别

mybatis generator插件生成的example中,有createcriteria和or方法,他们有什么区别呢?

通过源码,能很清楚的看出差别

createcriteria,当没有规则时,则加入到现有规则,但有规则时,不再加入到现有规则,只是返回创建的规则 。

?
1
2
3
4
5
6
7
public Criteria createCriteria() {
         Criteria criteria = createCriteriaInternal();
         if (oredCriteria.size() == 0 ) {
             oredCriteria.add(criteria);
         }
         return criteria;
  }

or,创建的规则,加入到规则集中,并且是or的关系

?
1
2
3
4
5
public Criteria or() {
     Criteria criteria = createCriteriaInternal();
     oredCriteria.add(criteria);
     return criteria;
}

mybatis中Example的and和or

能用Example代码解决的,我都不会去写个SQL放在项目里。我希望让代码尽量优雅、易读,所以这里记录一下关于MyBatis中Example的and和or的使用,主要是如下两种场景:

  • where (条件1 and 条件2) or (条件3 and 条件4)
  • where (条件1 and 条件2) and (条件3 or 条件4)

where (条件1 and 条件2) or (条件3 and 条件4)

?
1
2
3
4
5
6
7
8
//条件1 and 条件2
example.createCriteria()
         .andEqualTo( "isDeleted" ,IsDeleted.NOT_DELETED)
         .andEqualTo( "name" , projectCatalogEntity.getName());
//or (条件3 and 条件4)
example.or(example.createCriteria()
         .andEqualTo( "isDeleted" ,IsDeleted.NOT_DELETED)
         .andEqualTo( "code" , projectCatalogEntity.getCode()));

WHERE ( is_deleted = ? and name = ? ) or ( is_deleted = ? and code = ? ) 。

where (条件1 and 条件2) and (条件3 or 条件4)

?
1
2
3
4
5
6
7
8
//条件1 and 条件2
example.createCriteria()
         .andEqualTo( "isDeleted" ,IsDeleted.NOT_DELETED))
         .andEqualTo( "parentId" , projectCatalogEntity.getParentId());
//and (条件3 or 条件4)
example.and(example.createCriteria()
         .andEqualTo( "name" , projectCatalogEntity.getName())
         .orEqualTo( "code" , projectCatalogEntity.getCode()));

WHERE ( is_deleted = ? and parent_id = ? ) and ( name = ? or code = ? ) 。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/wangjun5159/article/details/53325540 。

最后此篇关于mybatis createcriteria和or的区别说明的文章就讲到这里了,如果你想了解更多关于mybatis createcriteria和or的区别说明的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com