一.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. 基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台

    基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台   一.板卡概述 板卡由我公司自主研发,基于VPX架构,主体芯片为两片 TI DSP TMS320C6678,两片V ...

  2. 一、Vs2019扩展多了 导航到反编译的源码中运行

    一.导航到反编译的源码中运行

  3. Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) - D

    题目链接:http://codeforces.com/contest/831/problem/D 题意:在一个一维坐标里,有n个人,k把钥匙(钥匙出现的位置不会重复并且对应位置只有一把钥匙),和一个终 ...

  4. selenium鼠标悬停失效,用js语句模拟

    写脚本时,有很多case需要要用的鼠标悬停出菜单 用到了ActionChains(self.driver).move_to_element(el).perform(),但是脚本写完以后,单个case执 ...

  5. POJ 2104 区间第k大(主席树)

    题目链接:http://poj.org/problem?id=2104 题目大意:给定还有n个数的序列,m个操作,每个操作含有l,r,k,求区间[l,r]第k大 解题思路:线段树只能维护序列的最大值最 ...

  6. 客户端模拟线程线程池发送100个文件给socket

    1.线程池模拟发送100个线程发送 2.每个线程启动一个socket发送文件 3.线程池最大并发几个

  7. unixbench

    1.下载 https://github.com/kdlucas/byte-unixbench/archive/v5.1.3.tar.gz 2.修改Makefile 交叉编译 #CC=gccCC = a ...

  8. Typescript + TSLint + webpack 搭建 Typescript 的开发环境

    (1)初始化项目 新建一个文件夹“client-side”,作为项目根目录,进入这个文件夹: 我们先使用 npm 初始化这个项目: 这时我们看到了在根目录下已经创建了一个 package.json 文 ...

  9. Flutter-stack層疊樣式

    alignment調整佈局 var stack = new Stack( alignment: Alignment.center,//元素居中 //alignment: Alignment (1,1) ...

  10. Element ui 上传文件组件(单文件上传) 点击提交 没反应

    element ui 第一次上传文件后 上传其他文件再次点击不再次提交 需要使用 clearFiles 清空已上传文件列表 这时候在次点击 上传按钮 就会惊喜的发现 可以上传了使用方法 this.$r ...