• 通用mapper中selectByExample,selectByPrimaryKey和select的区别


    1  selectByExample几乎可以解决所有的查询,select和selectByPrimary是简化的针对特定情况的解决方法

    2  以主键为条件进行查询, selectByExample的代码如下:

      Example example = new Example(Sku.class);
    Example.Criteria criteria = example.createCriteria();
    criteria.andEqualTo("id",27359021549L);
    List<Sku> list = this.skuMapper.selectByExample(example);
    list.get(0)就是需要的对象


    select的代码如下
    Sku sku2 = new Sku();
    sku2.setId(27359021549L);
    List<Sku> select = this.skuMapper.select(sku2);

    select.get(0)就是需要的对象



    selectByPrimaryKey的代码如下:
    Sku sku=this.shuMapper.selectByPrimaryKey(27359021549L)
    直接得到对象sku


    3  当查询的id为多个id的集合时,可以用selectByPrimaryKey,也可以用selectByExample,后者的criteric有一个方法.andIn()可以处理集合
      select的代码如下:
    ids.forEach(id -> {
    this.stockMapper.deleteByPrimaryKey(id);
    });

    selectByExample的代码如下:

    Example example = new Example(Stock.class);
    example.createCriteria().andIn("skuId", ids);
    this.stockMapper.deleteByExample(example);




    4  因此总结如下:
      当有主键时,优先用selectByPrimaryKey,当根据实体类属性查询时用select,当有复杂查询时,如模糊查询,条件判断时使用selectByExample
      

  • 相关阅读:
    java嵌套循环练习
    java菜鸡循环练习
    Kruskal重构树
    狄利克雷卷积
    莫比乌斯反演
    两道趣题
    树状数组
    多重背包
    SPFA与差分约束
    快速线性筛
  • 原文地址:https://www.cnblogs.com/zxq-Study-Java/p/10045396.html
Copyright © 2020-2023  润新知