一.mapper接口中的方法解析

mapper接口中的函数及方法

  • int countByExample(UserExample example) thorws SQLException     按条件计数
  • int deleteByPrimaryKey(Integer id) thorws SQLException     按主键删除
  • int deleteByExample(UserExample example) thorws SQLException     按条件查询
  • String/Integer insert(User record) thorws SQLException     插入数据(返回值为ID)
  • User selectByPrimaryKey(Integer id) thorws SQLException     按主键查询
  • List selectByExample(UserExample example) thorws SQLException     按条件查询
  • List selectByExampleWithBLOGs(UserExample example) thorws SQLException 按条件查询(包括BLOB字段)。只有当数据表中的字段类型有为二进制的才会产生。
  • int updateByPrimaryKey(User record) thorws SQLException     按主键更新
  • int updateByPrimaryKeySelective(User record) thorws SQLException     按主键更新值不为null的字段
  • int updateByExample(User record, UserExample example) thorws SQLException     按条件更新
  • int updateByExampleSelective(User record, UserExample example) thorws SQLException     按条件更新值不为null的字段

二.example实例解析

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

  xxxExample example = new xxxExample();

  Criteria criteria = new Example().createCriteria();

  • example.setOrderByClause(“字段名 ASC”);     添加升序排列条件,DESC为降序
  •   example.setDistinct(false)     去除重复,boolean型,true为选择不重复的记录。
  •   criteria.andXxxIsNull     添加字段xxx为null的条件
  •   criteria.andXxxIsNotNull     添加字段xxx不为null的条件
  •   criteria.andXxxEqualTo(value)     添加xxx字段等于value条件
  •   criteria.andXxxNotEqualTo(value)     添加xxx字段不等于value条件
  •   criteria.andXxxGreaterThan(value)     添加xxx字段大于value条件
  •   criteria.andXxxGreaterThanOrEqualTo(value)     添加xxx字段大于等于value条件
  •   criteria.andXxxLessThan(value)     添加xxx字段小于value条件
  •   criteria.andXxxLessThanOrEqualTo(value)     添加xxx字段小于等于value条件
  •   criteria.andXxxIn(List<?>)     添加xxx字段值在List<?>条件
  •   criteria.andXxxNotIn(List<?>)     添加xxx字段值不在List<?>条件
  •   criteria.andXxxLike(“%”+value+”%”)     添加xxx字段值为value的模糊查询条件
  •   criteria.andXxxNotLike(“%”+value+”%”)     添加xxx字段值不为value的模糊查询条件
  •   criteria.andXxxBetween(value1,value2)     添加xxx字段值在value1和value2之间条件
  •   criteria.andXxxNotBetween(value1,value2)     添加xxx字段值不在value1和value2之间条件

三、应用举例

   selectByExample() 和 selectByExampleWithBLOGs()

   UserExample example = new UserExample();
   Criteria criteria = example.createCriteria();
   criteria.andUsernameEqualTo("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

注:在mybatis逆向工程生成的文件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.修改数据

  ③ 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.删除数据

  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'

Mybatis-技术专区-Mapper接口以及Example的实例函数及详解的更多相关文章

  1. MyBatis的Mapper接口以及Example的实例函数及详解

    来源:https://blog.csdn.net/biandous/article/details/65630783 一.mapper接口中的方法解析 mapper接口中的函数及方法 方法 功能说明 ...

  2. MyBatis逆向工程中的Mapper接口以及Example的实例函数及详解

    一.mapper接口中的方法解析 mapper接口中的函数及方法 方法 功能说明 int countByExample(UserExample example) thorws SQLException ...

  3. mybatis中的mapper接口文件以及example类的实例函数以及详解

    ##Example example = new ##Example(); example.setOrderByClause("字段名 ASC"); //升序排列,desc为降序排列 ...

  4. Mybatis的逆向工程以及Example的实例函数及详解

    Mybatis-generator是Mybatis的逆向工程  (根据数据库中的表生成java代码) Mybatis的逆向工程会生成实例及实例对应的example,example用于添加条件,相当于w ...

  5. mybatis如何根据mapper接口生成其实现类

    SpringBoot集成mybatis mybatis的statement的解析与加载 mybatis如何根据mapper接口生成其实现类 mybatis的mapper返回map结果集 mybatis ...

  6. idea插件(mybatis框架下mapper接口快速跳转对应xml文件)亲测好用!

    我相信目前在绝大部分公司里,主要使用的框架是S(spring)S(spring MVC)M(mybatis),其中mybatis总体架构是编写mapper接口,框架扫描其对应的mapper.xml文件 ...

  7. iBatis——自动生成DAO层接口提供操作函数(详解)

    iBatis——自动生成DAO层接口提供操作函数(详解) 在使用iBatis进行持久层管理时,发现在使用DAO层的updateByPrimaryKey.updateByPrimaryKeySelect ...

  8. mybatis中的mapper接口文件以及selectByExample类的实例函数详解

    记录分为两个部分,第一部分主要关注selectByExample类的实例函数的实现:第二部分讨论Mybatis框架下基本的实例函数. (一)selectByExample类的实例函数的实现 当你启动项 ...

  9. mybatis如何根据mapper接口生成其实现类(springboot)

    序 mybatis里头给sqlSession指定执行哪条sql的时候,有两种方式,一种是写mapper的xml的namespace+statementId,如下: public Student fin ...

随机推荐

  1. 2、Jmeter测试

    一.测试流程 1.添加本次测试计划 (右键-->添加-->Threads(Users)-->线程组) 2.设置线程数 (所谓线程数就是并发用户数) 3.在线程组内添加请求(右键--& ...

  2. MYSQL中IN与EXISTS的区别

    在MYSQL的连表查询中,最好是遵循‘小表驱动大表的原则’ 一.IN与EXISTS的区别1.IN查询分析SELECT   *  FROM A WHERE id IN (SELECT id FROM B ...

  3. IncDec Sequence (差分)

    题目地址 这道题可以用来检测一下你是否学会了差分,或者你可以更加透彻的理解差分 我们把 \(cf[]\) (差分)数组拿出了,就可以发现这道题就是每次可以在 \(cf[]\)中 选两个数,一个+1,一 ...

  4. solr的一些查询语法

    以下内容来自solr中国 1.1. 首先假设我的数据里fields有:name, tel, address 预设的搜寻是name这个字段, 如果要搜寻的数据刚好就是 name 这个字段,就不需要指定搜 ...

  5. 修改编码为utf8mb4 以支持emoji表情

    环境: 项目db的所有字符集都已经初始化为utf-8,如 status命令显示如下: Server characterset: utf8Db characterset: utf8Client char ...

  6. 在一个div上增加遮罩

    有一个需求是给一个视频增加遮罩 我研究了下 抽象出来就是给一个div增加遮罩 原理是:最外层的div使用relative定位     然后里面放两个子div  一个是不被遮的  另一个是遮罩(用abs ...

  7. @ContrllerAdvice全局异常

    @ControllerAdvice,是Spring3.2提供的新注解,它是一个Controller增强器,可对controller中被 @RequestMapping注解的方法加一些逻辑处理.最常用的 ...

  8. intraweb首次与LayUI结合

    intraweb可以说是Delphi Web开发的好帮手,但是自带的控件搭建页面,感觉不是那么美观,于是想引用一个UI框架,Delphi来提供后台访问,但是发现一个问题,如果intraweb用模版,L ...

  9. ht-6 hashSet特性

    Set接口: Set接口是Collection接口的另外一个常用子接口,Set接口描述的是一种比较简单的集合,集合中的对象并不按特定的方式排序,并且不能保存重复的对象,即set接口可以存储一组唯一的无 ...

  10. JAVA WEB怎么实现大文件上传

    javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 改进后的代码不需要form标签,直 ...