Mybatis之更新方法: updateByPrimaryKeySelective() 和 updateByPrimaryKey() 的区别

int updateByPrimaryKeySelective(TbItem record);int updateByPrimaryKey(TbItem record);

上面的是逆转工程生成的Mapper接口

对应的xml为

<update id="updateByPrimaryKeySelective" parameterType="com.taotao.pojo.TbItem">update tb_item<set><if test="title != null">title = #{title,jdbcType=VARCHAR},</if></set>where id = #{id,jdbcType=BIGINT}</update>---------------------------------------------------------------------
<update id="updateByPrimaryKey" parameterType="com.taotao.pojo.TbItem">update tb_itemset title = #{title,jdbcType=VARCHAR},where id = #{id,jdbcType=BIGINT}</update>

updateByPrimaryKeySelective 会对字段进行判断再更新(如果为Null就忽略更新),如果你只想更新某一字段,可以用这个方法。

更新为空时不会保存空


updateByPrimaryKey 对你注入的字段全部更新,将为空的字段在数据库中置为NULL

    @Overridepublic Page<Community> search(Map searchMap) {//通用Mapper多条件搜索,标准写法Example example = new Example(Community.class);//指定查询的表tb_community//1.初始化分页条件int pageNum = 1;int pageSize = 2;if (searchMap != null) {Example.Criteria criteria = example.createCriteria();//创建查询条件//时间区间if (StringUtil.isNotEmpty((String) searchMap.get("startTime"))) {criteria.andGreaterThanOrEqualTo("createTime", searchMap.get("startTime"));}if (StringUtil.isNotEmpty((String) searchMap.get("endTime"))) {criteria.andLessThanOrEqualTo("createTime", searchMap.get("endTime"));}//名称模糊搜索if (StringUtil.isNotEmpty((String) searchMap.get("name"))) {criteria.andLike("name", "%" + (String) searchMap.get("name") + "%");}//分页if ((Integer) searchMap.get("pageNum") != null) {pageNum = (Integer) searchMap.get("pageNum");}if ((Integer) searchMap.get("pageSize") != null) {pageSize = (Integer) searchMap.get("pageSize");}}PageHelper.startPage(pageNum, pageSize);//使用PageHelper插件完成分页Page<Community> communities = (Page<Community>) communityMapper.selectByExample(example);return communities;}

TKmapper的更新方法updateByPrimaryKey()与updateByPrimaryKeySelective()相关推荐

  1. svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录

    svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录 参考文章: (1)svn更新路径,解决办法详细步骤,ec ...

  2. Visual Studio 2017强制更新方法

    Visual Studio 2017强制更新方法 Visual Studio 2017更新时候,用户都是根据消息提示,进行更新.这样做的好处,就是微软可以分批下发升级包,避免集中更新.不过为了早点用上 ...

  3. airpods固件更新方法_苹果AirPods 2 和 AirPods Pro固件升级

    9月15日消息,AirPods 2 和 AirPods Pro在今天发布固件更新,版本号为3A283,将支持空间音频功能. 此次新发布的3A283 固件将加入了空间音频功能,更新后在控制中心中加入了空 ...

  4. 关闭自动更新_Win10系统关闭自动更新方法

    Windows 10是微软最新的操作系统,系统上的自动更新功能可以保障Win10系统处于最新的状态,不过对于普通用户来说并不是所有的更新都是必要的,且系统频繁更新会比较影响用户正常使用.下面就和大家分 ...

  5. windows系统禁止更改服务启动类型_Win10系统关闭自动更新方法

    Windows 10是微软最新的操作系统,系统上的自动更新功能可以保障Win10系统处于最新的状态,不过对于普通用户来说并不是所有的更新都是必要的,且系统频繁更新会比较影响用户正常使用.下面就和大家分 ...

  6. pip更新方法(win与linux)版本

    windows版本pip更新方法: python -m pip install --upgrade pip Linux版本pip更新方法: 需要根据对应的[python]版本进行使用命令: 基础版本 ...

  7. win10必须禁用的服务_【亲测】Win10系统如何彻底禁止自动更新 亲测有效的Win10关闭自动更新方法...

    昨天有人称Win10系统更新依然无法彻底关闭,今天再来补充一下,肯定可以! 不少用户反映自己的Win10系统更新无法彻底关闭,网上提供的关闭Win10更新的教程,关闭之后还是会自动更新Win10系统, ...

  8. android studio gradle 自动更新,android studio gradle 两种更新方法更新

    又快一年没有使用AS了,正好要查看一个Android项目代码,干脆升级到新版试试看新变化,旧版本为3.1.2,目前最新版本为3.4.2,AS的升级是很简单的直接update等待即可. 升级完了,打开G ...

  9. DataGridView的单元格内容即时更新方法

    DataGridView的即时更新方法 收藏 最近用了DataGridView,深有体会,最深刻一点是它的事件.我想很多人都希望编辑表格单元的同时更新其他东西,就好像TextBox的TextChang ...

最新文章

  1. CSS的表白:七夕巧克力心
  2. 【整理】RPA选择器针对SAP系统的设置
  3. redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法
  4. ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
  5. Java锁之公平和非公平锁
  6. 新手学习Java必需要知道的这些基本概念!
  7. sap原因代码配置路径_使用Visual Studio Code编写和激活ABAP代码 (上)
  8. 在WCF数据访问中使用缓存提高Winform字段中文显示速度
  9. jQuery构造函数init参数分析(三)
  10. 杰里之AC897N_AD697N_earphone_release_ V2.0.1 开立体声左右声道数据对调【篇】
  11. DES加密解密-CryptoJS与Java
  12. 解决IOS微信SDK初始化失败
  13. 参观一家买过十年货的淘宝店是怎样的体验?——新魔术8000生产基地探秘
  14. MQTT学习笔记——MQTT协议使用
  15. PostgreSQL on Linux 最佳部署手册
  16. html切换导航不同页面,HTML按钮:导航到其他页面 - 不同的方法
  17. 3 在浏览器中查看请求报文和响应报文
  18. bat递归查找指定文件_教你在电脑上用批处理脚本全盘查找文件
  19. JSON的parse()方法
  20. 【无标题】光纤收发器TX、RX分别表示什么?区分单纤双纤收发器的方法

热门文章

  1. 杰信物流项目总结(八)
  2. 交互式分割: Interactive Object Segmentation with Inside-Outside Guidance
  3. winform中的UI刷新总结
  4. tc网络流控详解及常用队列
  5. Matlab细胞识别统计,血液细胞的图像识别计数方法与流程
  6. 天干地支纪年法中为什么是60年一个轮回,而不是120年
  7. [总结] better fog
  8. 【视频教程】帝国CMS制作网站系列教程13—全站全文搜索及模板
  9. 医学研究生常用软件介绍
  10. matlab毕达哥拉斯质数,这位天才发现了素数、完美数和亲和数,证明三角形内角和是180°...