一.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. EwoMail 邮件服务器安装

    ewomail 安装及使用 主页:http://www.ewomail.com/ 开源版主页:http://www.ewomail.com/list-9.html 开源版文档:http://doc.e ...

  2. python-使用list和tuple

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  3. jinfo 干涉java runtime的jvm参数

    https://blog.csdn.net/bolg_hero/article/details/78156311 jinfo使用介绍可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时, ...

  4. python进阶:装饰器

    1.闭包 简单理解:闭包就是多层函数的嵌套,外层函数的返回值是内层函数的引用. def out_func(n): num = 100 def in_fucn(*args,**kwargs): # no ...

  5. java int整数相乘溢出

    int整数相乘溢出 我们计算一天中的微秒数: * * * * ;// 正确结果应为:86400000000 System.out.println(microsPerDay);// 实际上为:50065 ...

  6. python开发之virtualenv与virtualenvwrapper

    在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难. 此时,我们需要对于不同的工程使用 ...

  7. pandas.DataFrame.drop_duplicates 用法说明

    DataFrame.drop_duplicates(subset=None, keep='first', inplace=False) subset考虑重复发生在哪一列,默认考虑所有列,就是在任何一列 ...

  8. VM虚拟机中MAC OS调整磁盘大小

    1.打开终端,输入diskutil list: 2.从显示的列表中找到你需要扩展的分区(是分区不是磁盘,分区的ID一般为diskXsX): 3.然后输入 diskutil resizeVolume d ...

  9. php strlen()函数 语法

    php strlen()函数 语法 作用:返回字符串的长度.大理石平台价格 语法:strlen(string) 参数: 参数 描述 string 必需.规定要检查的字符串.     说明:返回字符串的 ...

  10. 20180826(01)-Java数据结构

    Java 数据结构 Java工具包提供了强大的数据结构.在Java中的数据结构主要包括以下几种接口和类: 枚举 (Enumeration) 位集合(BitSet) 向量 (Vector) 栈 (Sta ...