• Example.Criteria


    example实例解析

    mybatis的逆向工程中会生成实例及实例对应的example,example用于添加条件,相当于where后面的部分

    criteria.andXxxEqualTo(value)             添加Xxx字段等于value的条件  

    1.查询

    ① selectByPrimaryKey()
    User user = XxxMapper.selectByPrimaryKey(100); //相当于select * from user where id = 100
    ---------------------------------------------------------------
    ② selectByExample() 和 selectByExampleWithBLOGs()
    UserExample example = new UserExample();
    Criteria criteria = example.createCriteria();//Criteria是Example类的一个静态内部类,用来存储查询条件语句
    criteria.andUsernameEqualTo("wyw");//添加Username字段等于wyw的条件  
    criteria.andUsernameIsNull();
    example.setOrderByClause("username asc,email desc");
    List<?>list = XxxMapper.selectByExample(example);
    //相当于:select * from user where username = 'wyw' and username is null order by username asc,email desc
    注:在iBator逆向工程生成的文件XxxExample.java中包含一个static的内部类Criteria,Criteria中的方法是定义SQL 语句where后的查询条件。

    2.插入数据

    ①insert()
    User user = new User();
    user.setId("dsfgsdfgdsfgds");
    user.setUsername("admin");
    user.setPassword("admin")
    user.setEmail("wyw@163.com");
    XxxMapper.insert(user);
    //相当于:insert into user(ID,username,password,email) values ('dsfgsdfgdsfgds','admin','admin','wyw@126.com');

    3.更新数据

    ①updateByPrimaryKey()
    User user =new User();
    user.setId("dsfgsdfgdsfgds");
    user.setUsername("wyw");
    user.setPassword("wyw");
    user.setEmail("wyw@163.com");
    XxxMapper.updateByPrimaryKey(user);
    //相当于:update user set username='wyw', password='wyw', email='wyw@163.com' where id='dsfgsdfgdsfgds'
    -------------------------------------------------------------------------
    ②updateByPrimaryKeySelective()
    User user = new User();
    user.setId("dsfgsdfgdsfgds");
    user.setPassword("wyw");
    XxxMapper.updateByPrimaryKey(user);
    //相当于:update user set password='wyw' where id='dsfgsdfgdsfgds'
    --------------------------------------------------------------
    ③ updateByExample() 和 updateByExampleSelective()
    UserExample example = new UserExample();
    Criteria criteria = example.createCriteria();
    criteria.andUsernameEqualTo("admin");
    User user = new User();
    user.setPassword("wyw");
    XxxMapper.updateByPrimaryKeySelective(user,example);
    //相当于:update user set password='wyw' where username='admin'
    updateByExample()更新所有的字段,包括字段为null的也更新,建议使用 updateByExampleSelective()更新想更新的字段

    4.删除数据

    ①deleteByPrimaryKey()
    XxxMapper.deleteByPrimaryKey(1); //相当于:delete from user where id=1
    ---------------------------------------------
    ②deleteByExample()
    UserExample example = new UserExample();
    Criteria criteria = example.createCriteria();
    criteria.andUsernameEqualTo("admin");
    XxxMapper.deleteByExample(example);
    //相当于:delete from user where username='admin'

    5.查询数据数量

    ①countByExample()
    UserExample example = new UserExample();
    Criteria criteria = example.createCriteria();
    criteria.andUsernameEqualTo("wyw");
    int count = XxxMapper.countByExample(example);
    //相当于:select count(*) from user where username='wyw'

     

  • 相关阅读:
    bzoj 1367
    codeforces 757F
    bzoj 3600
    比赛环境设置
    线段树合并
    BZOJ2105: 增强型LCP
    BZOJ3156: 防御准备
    BZOJ3252: 攻略
    BZOJ2464: 中山市选[2009]小明的游戏
    Beta Round #9 (酱油杯noi考后欢乐赛)乌鸦喝水
  • 原文地址:https://www.cnblogs.com/Hiramunderneath/p/14940214.html
Copyright © 2020-2023  润新知