一、mapper接口中的方法解析

mapper接口API

方法 功能说明

 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
② 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

注:在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'

原文:https://blog.csdn.net/weixin_38626799/article/details/85071343

mapper接口中的方法,example实例解析相关推荐

  1. mybatis接口中的方法重载_MyBatis的Mapper接口以及Example的实例函数及详解

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

  2. MyBatis-Plus——Mapper接口中使用自定义的CRUD方法及Mapper.xml映射文件

    1.案例详解 首先在Navicat中创建一张表. 创建一个SpringBoot工程,在pom文件中添加所需依赖. <dependency><groupId>org.spring ...

  3. SpringBoot2整合Mybatis拦截器,拦截mapper接口的某个方法

    需求: 在执行某个动态sql时,where 子句,希望通过用户进行自定义查询条件,比如用户可以传入 "id > 100011 and name = '张三'" 的多条件表达式 ...

  4. java学习(尚硅谷)集合之Collection接口中的方法

    又是好几天没有学Java了,今天下午睡了个觉状态很好,来到图书馆写了点C++的项目代码,写累了看了几集康师傅.笔记如下: Collection接口中的方法: package com.atguigu.j ...

  5. java中的接口中的方法

    题目如下:(多选题)请选择以下接口定义正确的方法()A:public static void main (String[] args);B:private void test();C:public v ...

  6. 接口中默认方法和静态方法_接口中的默认方法和静态方法

    接口中默认方法和静态方法 在我们最初的Java 8支持公告中,我们特别提到了流的缺乏,但完全错过了默认/静态本机接口不起作用的事实. 现在,由于有一个警惕的社区成员指出了这一问题,因此此问题已得到解决 ...

  7. 接口中的方法需要加上 public abstract 修饰吗

    问题:接口中的方法需要加上 public abstract 修饰吗? 答:个人认为这是没有必要的,因为接口里面的方法都是必须要由实现类去实现的,即使在写的时候不加,在编译之后生成 class 文件时, ...

  8. mybatis接口中的方法重载_MyBatis底层实现原理: 动态代理的运用

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:祖大俊 my.oschina.net/zudajun/blog/666223 一日小 ...

  9. TKmybatis的使用,MyBatis的Mapper接口、Example方法

    文章目录 TKmybatis的使用 TKmybatis的常用注解 Mapper中的方法(dao继承可用) Example方法设置查询条件 TKmybatis的使用 pom.xml导入依赖 <!- ...

  10. jQuery中slice()方法用法实例

    本文实例讲述了jQuery中slice()方法用法.分享给大家供大家参考.具体分析如下: 此方法可以选取匹配元素集的子集. 语法结构: 复制代码 代码如下: $(selector).slice(sta ...

最新文章

  1. 隐藏原生select下拉框的向下箭头▼
  2. OpenCV形态学处理使用技巧与应用演示
  3. 验证码在服务器不显示
  4. Price suggestion(EDA)下--nlp的处理
  5. 微信好友个性标签词云--微信数据分析(四)
  6. 3 float py 位小数 裁剪_对一个 float 精度问题的分析
  7. “针对即席工作负荷进行优化”如何影响你的计划缓存
  8. [转] GCC 中的编译器堆栈保护技术
  9. opencv 基本绘图函数
  10. Bootstrap 使用教程 与jQuery的Ajax方法
  11. MATLAB命令总结
  12. Python实现聊天机器人
  13. Unity 3D模型展示之webGL平台展现
  14. luogu P2852 [USACO06DEC]牛奶模式Milk Patterns
  15. Myeclipse 使用经验总结
  16. 解决透视变换后图片信息丢失的问题,附程序
  17. 这篇文章告诉你图片转语音免费软件有哪些?
  18. 物联网安全期末知识点总结
  19. java中的 r是什么意思_R在java中是什么意思
  20. Opencv4学习-2、小案例之绿布抠图-视频背景图替换

热门文章

  1. (一)apache atlas源代码编译与打包
  2. 我来到这世上,却不曾歌唱
  3. C++学习笔记之类和对象I
  4. python查找一段字符串中是否包含指定字符串
  5. nssm在服务器上的使用超详细说明
  6. HCIE Security 华为WAF产品 备考笔记(幕布)
  7. 【BIRT】在页面上展示xxxx年xx月xx日
  8. 路由器将迎重磅升级 WiFi速度提升3倍
  9. C# DataGridView 全选 反选
  10. HDU 5351 MZL's Border (规律,大数)