申明:转载博客--来自 https://blog.csdn.net/biandous/article/details/65630783

一、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    按主键查询
ListselectByExample(UserExample example) thorws SQLException    按条件查询
ListselectByExampleWithBLOGs(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之间条件
三、应用举例
1.查询
① selectByPrimaryKey()

User user = XxxMapper.selectByPrimaryKey(100); //相当于select * from user where id = 100
1
② 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
1
2
注:在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');
1
2
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'
1
2
②updateByPrimaryKeySelective()

User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setPassword("wyw");
XxxMapper.updateByPrimaryKey(user);
//相当于:update user set password='wyw' where id='dsfgsdfgdsfgds'
1
2
③ 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'
1
2
updateByExample()更新所有的字段,包括字段为null的也更新,建议使用 updateByExampleSelective()更新想更新的字段

4.删除数据
①deleteByPrimaryKey()

XxxMapper.deleteByPrimaryKey(1);  //相当于:delete from user where id=1
1
②deleteByExample()

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

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'

---------------------

本文来自 : https://blog.csdn.net/biandous/article/details/65630783

mybatis Example 使用方法相关推荐

  1. 警惕 | 警惕,mybatis的size()方法竟然有坑!

    Hi ! 我是小小,今天我们又见面了,今日的主要内容是MyBatis的size方法使用的主要的注意事项. 前言 MyBatis 是一个开源的轻量级的半自动化的 ORM 框架,用于面向对象和关系型数据库 ...

  2. Mybatis逆向工程创建方法

    Mybatis逆向工程创建方法 1.首先利用数据库的可视化工具新建一张表. 说明:这里id可以用int,但是用varchar类型更安全 2.打开IDEA新建一个项目. 3.导入pom.xml所需要的依 ...

  3. Mybatis的Mapper方法中传递map参数的写法

    Mybatis的Mapper方法中传递map参数的写法 当我们在进行数据分页查询时,如果想让Mybatis的分页查询返回Map对象的集合,我们需要在查询的方法上使用单个参数或者使用Map对象作为参数进 ...

  4. 警惕,MyBatis的size()方法竟然有坑!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://h5ip.cn/aJgJ Mybatis是一个 ...

  5. 诡异!MyBatis的Insert方法一直返回-2147482646?

    作者 | 占小狼的博客 来源 | https://mp.weixin.qq.com/s/iV6BwQkjTXCvfrAwgj2V4w 前几天在做项目demo的时候,发现有一个很奇怪的现象,就是MyBa ...

  6. mybatis Example 使用方法

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

  7. 【MyBatis框架】Mybatis开发dao方法第二部分

    下面来继续讨论mybatis开发Dao的方法 我们前面使用原始的Dao开发方法,发现了许多弊端,我们下面使用mapper代理来写Dao方法. 1.mapper代理方法(程序员只需要mapper接口(相 ...

  8. 【MyBatis框架】Mybatis开发dao方法第一部分

    下面来讨论mybatis开发Dao的方法 先来说一下基本架构流程中使用到的几个类 1.SqlSession使用范围 1.1SqlSessionFactoryBuilder  通过SqlSessionF ...

  9. 关于Mybatis的insert方法返回值(将返回值受影响条数改为插入后的自增主键id)

    今天做ssm项目的时候有一个这样的需求--我借阅一本书然后生成一条借阅记录(借阅记录的主键是递增的"borrowNum"),然后将这条记录的主键返回,在往上查阅资料后知道,只要在对 ...

最新文章

  1. Python中使用ElementTree解析xml
  2. mysql 分区表 归档_MySQL分区表
  3. C# 面向对象之继承后初始化顺序
  4. 黄光裕回应与京东、拼多多竞争:谁也灭不了谁 不排除合作的可能性
  5. grep 多模式匹配
  6. 20165226 实验四 Android程序设计
  7. Computer composition and design work04 ——fifth verson
  8. PS常用快捷键操作记录
  9. 小米路由R4A千兆版安装breed+OpenWRT教程以及救砖(全脚本无需硬改)
  10. 大数据监测及预警系统平台怎么选择的方法参考
  11. java 解析uri_Uri详解之——Uri结构与代码提取
  12. 从Linux角度以及JVM源码,深入NIO的细节
  13. 计算机的集成显卡是什么意思,IGD、PEG、PCI的含义,我的电脑是集成显卡该选哪一项...
  14. Kindle电子书的资源汇总
  15. ucharts 柱状图圆角_圆角柱状图
  16. Aspose.Words for .NET使用教程(十二):在Word文档中使用图表轴
  17. 使用MATLAB计算一幅图像的熵
  18. 三国志·吴书·贺齐等传
  19. HAL 编程问题手记
  20. 微信小程序自带地图_微信小程序获取当前位置并调用微信内置地图打开

热门文章

  1. 嵌入式课程设计 —— STM32 定时器编程
  2. 安卓,类QQ评论,界面编写
  3. 将html连接到外部样式表文件,外部样式表文件通过( )标记链接到HTML文件中
  4. 软考A计划-试题模拟含答案解析-卷十二
  5. Linux学习--rsync+inotify实现自动同步
  6. 常见的地磁传感器是怎么工作的
  7. 支持多光谱数据源!LiMapper 无人机影像处理软件2.1发布
  8. 在windows下用命令设置代理服务器
  9. 互联网拓扑是怎样构成的?又代表了什么?
  10. dag执行 java实现_如何调用DAG拓扑重组?