MyBatis-Plus基础用法笔记(只记录了我个人需要注意的地方)

【MyBatis】 MyBatis与MyBatis-Plus的区别 mybatis-plus 是 mybatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 阅读详情

说明:文中articleService为Service实例,Article article为具体实体对象,list为存储实体对象的集合,article以code属性为主键 findByCode方法为自己封装的wrapper实现的,HmPage为IPage的具体实现类

  • CRUD接口
    • Service CRUD接口

      • Save
        articleService.saveBatch(list,3);//批量插入 每批次插入3条 3条3条的插入
        
      • SaveOrUpdate
        articleService.saveOrUpdate(article);//当数据库中已经存在改code记录时,报错 code已经存在
        
      • Remove
        //第一个删除不了 第二个和第三个删除效果是一样的 但是方法里边参数要求的是id 可以自动识别出数据库中查询出来带id属性的实体类 获取id对应值  包括getById方法 同理
        articleService.removeById(article);
        articleService.removeById(articleService.findByCode(article.getCode()));
        articleService.removeById(articleService.findByCode(article.getCode()).getId());
        
      • List
        Map<String,Object> params = new HashMap<>();
        params.put("type",3);
        params.put("company_code",2);
        //查询所有
        articleService.list();
        //根据条件查询
        articleService.listByMap(params);
        //返回map集合 不包含空值
        articleService.listMaps();
        //obj数组,只有id
        articleService.listObjs();
        
      • Page
        //无条件翻页查询 返回值为HmPage对象
        articleService.page(new HmPage());
        //带筛选条件翻页查询 返回值为HmPage对象
        articleService.page(new HmPage(),queryWrapper);
        
      • Chain链式查询
        //链式查询
        articleService.query().eq("code", 1234567L).eq("type", 1).list();
        
    • Mapper CRUD接口

      • Insert Delete Update Select
  • 条件构造器
    • AbstractWrapper
      • allEq

        //allEq最多有四个参数,第一个参数表示是否将该条件加入到最后生成的sql语句中 默认是true 
        //第二个参数为过滤函数,表示是否允许筛选字段传入对比条件中,用于在查询条件中再次进行过滤
        //第四个参数表示是否考虑值为null的情况 默认为true 当参数的值为null的时候 最后的sql语句会有 and xx is null
        //第三个参数为查询条件集合,为所有重载方法中的必填项
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.allEq(boolean condition,BiPredicate<R,V> filter,Map<R,V> params,boolean null2IsNull);
        
      • 单一条件查询

        方法含义sql
        eq等于key = ‘value’
        ne不等于key <> ‘value’
        gt大于key > value
        ge大于等于key >= value
        lt小于key < value
        le小于等于key <= value
        betweenBETWEEN 值1 AND 值2key between value1 and value2
        notBetweenNOT BETWEEN 值1 AND 值2key not between value1 and value2
        likeLIKE ‘%值%’key like ‘%value%’
        notLikeNOT LIKE ‘%值%’key not like ‘%value%’
        likeLeftLIKE ‘%值’key like ‘%value’
        likeRightLIKE ‘值%’key like ‘value%’
        isNullIS NULLkey is null
        isNotNullIS NOT NULLkey is not null
        inIN(value.get(0),value.get(1),…)key in (value1,value2,value3)
        notInkey not in (value1,value2,value3)
        inSqlIN(sql语句)key in (select key1 from table where key1 < 3)
        notInSqlNOT IN (sql语句)key not in (select key1 from table where key1 < 3)
        grounpBy分组 GROUNP BY 字段grounp by key1,key2
        orderByAscORDER BY 字段,… ASCorder by key1 ASC,key2 ASC
        orderByDescORDER BY 字段,…DESCorder by key1 DESC,key2 DESC
        orderByORDER BY 字段,…
        havingHAVING (sql语句)having (sql语句)
        orOR 默认连接为and,or需要主动调用or
        andANDand
        nested正常嵌套(不带AND或者OR)nested()
        apply拼接sqlapply()
        last无视规则直接拼接到sql最后,多次调用执行最后一次,有sql注入风险
        existsEXISTS(sql语句)exists ()
        notExistsNOT EXISTS(sql语句)not exists ()
        123
SpringBoot+MyBatisPlus技术总结 官网简介 | MyBatis-Plus (baomidou.com)MyBatis-Plus (简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。只需简单的配置,就能实现对单表的CURD。其核心有两个接口:BaseMapper和IServiceBaseMapper中封装了大量数据访问层的方法IServcie中封装了大量业务流程层的方法[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WGaNT9sj-1676451 阅读详情

相关推荐

MyBatis-Plus提供的默认Service能力

MyBatis-Plus不仅有BaseMapper接口提供给基本的CRUD功能,还在Service层提供了IService接口,扩展了BaseMapper的功能。 官方文档 传送门 下面,详细整理IService<T>提供的能力。 增 插入一条记录 default boolean save(T entity) { return SqlHelper.retBool(getBaseMapper().insert(entity)); } 例子: @Test

西瓜游侠的博客 1640

MyBatis-Plus 踩坑 ,getById查询无效

问题出在Entity上,由于我数据表的id字段名为id且long类型,自动生成的id字段serialVersionUID且类型为int类型,与数据库表对不上号。使用getById(id)查询自然为null因为entity生成出来的主键没注意到是不符合数据表的所以解决方法是,把主键改成数据表对应的:把主键id字段名改回id,且数据类型设置long...

kjahe的博客 4771

mybatis 和 mybatis-plus

配置文件: 用于配置数据库连接和 MyBatis 运行时所需的各种特性,包含了设置和影响 MyBatis 行为的属性、映射文件的位置。mapper接口和mapper.xml之间需要遵循一定规则,才能成功的让mybatis将mapper接口和mapper.xml绑定起来。创建IUserMapper接口: 用于操作数据库CURD的方法。文件:用于mybatis配置文件读取数据库信息。resources 目录下 创建。resources 目录下 创建。resources 目录下 的。类:用于跟数据库字段做映射。

Waller_的博客 1419

MyBatis-Plus getById 查询语句正常但返回值为NULL

而且在使用@TableFiled 时需要不能通过手写SQL的方式,因为通过手写SQL的方式MP不能将别名语句补到该SQL语句中,从而失效。所以下次在设定属性名一定要遵守驼峰命名法呀...由于该项目代码是我的一位导师发给我的,我当时拿到代码也没去注意属性名不规范的问题(不是甩锅)改了一晚上,非常痛苦。刚开始我以为是实体类的属性名与数据库表字段的映射关系出现异常,而后我尝试使用@TableFiled注解对实体类的属性名进行映射。最后发现在MyBatis-Plus中,实体类的属性名不能带。

AdamShyly的博客 4063

深入理解 MyBatis-Plus 中的 LambdaQueryWrapper 用法与最佳实践

是 MyBatis-Plus 提供的一个查询构造器,它允许你通过 Lambda 表达式来构建 SQL 查询条件。与传统的 SQL 字符串拼接相比,类型安全:通过 Lambda 表达式引用实体类字段,避免了字符串拼写错误引起的运行时错误。代码简洁:链式调用使得查询条件的构建更加直观和流畅。高可读性和可维护性:通过实体类的字段直接构建查询条件,提高了代码的可读性和可维护性。有时你可能只需要查询部分字段,而不是整个实体。在这种情况下,可以使用select这个示例中,只有name和。

算命de博客 2438

MyBatisPlus快速入门(八)IService接口基本用法

MyBatisPlus 是一个强大的持久层框架,扩展了 MyBatis 的功能,IService 接口是 MyBatisPlus 提供的一种通用的 Service 接口,用于简化Service层的开发。IService 接口定义了一些常用的数据库操作方法,包括插入数据、更新数据、根据ID查询数据、根据条件查询数据等,通过继承 IService 接口,我们可以很方便地实现对数据库的操作,并且不需要编写大量的重复代码。

Designer 小郑的技术博客 5011

MyBatis Plus 如何实现连表查询 mybatis plus join

MyBatis-Plus 连表插件 mybati-plus-join, 完全按照mybats plus API风格扩展,支持一对一返回映射,多对多返回映射,自定义返回ResultType,引入后不会对原有的业务产生影响, 只拓展不修改

qq_31116181的博客 6万+

【NLG】(六)文本生成评价指标—— ROUGE原理及代码示例

前奏: 【NLG】(一)文本生成评价指标——BLEU原理及代码示例 【NLG】(二)文本生成评价指标—— METEOR原理及代码示例 【NLG】(三)文本生成评价指标—— ENTROPY原理及代码示例 【NLG】(四)文本生成评价指标—— diversity原理及代码示例 【NLG】(五)文本生成评价指标—— kl_divergence原理及代码示例 1.ROUGE原理 2.优缺点 3.如何算ROUGE ...

凝眸伏笔的博客 1万+

mybatis过渡到mybatis-plus过程中需要注意的地方

升级的核心是 **“增强而非重构”**:通过替换依赖、调整配置、适配注解,保留原有业务逻辑的同时,逐步引入 MP 的通用功能和插件。关键是确保版本兼容、测试覆盖,并根据团队情况逐步迁移,充分利用 MP 简化开发的优势。

hqxstudying的博客 1195

IEEE Transaction期刊模板使用注意事项

本文将总结使用IEEE Transactions系列期刊的投稿模板时的一些注意事项,包括模板本身的使用规范、参考文献的正确格式等其他内容。

weixin_39529207的博客 2万+

ElasticSearch集群搭建

docker安装es集群

weixin_46562226的博客 2024

mybatis-plus使用笔记、wrappers用法、idGenerator(id生成器等)

mybatis-plus使用笔记、wrappers用法、idGenerator(id生成器等)

enthan809882的博客 740

Python大数据舆情分析系统开发实战

舆情监测系统是大数据分析的重要应用场景,通过自然语言处理(NLP)技术解析社交媒体文本情感倾向。基于Python技术栈的解决方案整合了Scrapy爬虫框架进行数据采集,PySpark处理海量文本数据,结合SnowNLP和Jieba实现中文语义分析。系统采用微服务架构设计,包含数据采集层、处理层、存储层和应用层,通过情感分析优化和实时热点检测算法提升监测准确率。典型应用包括企业品牌监测、公共事件预警等场景,开发过程中需特别注意数据合规性和分布式集群的性能调优。

weixin_34408624的博客 386

【MyBatis系列】深入解析 MyBatis-Plus 中 QueryWrapper 的高级用法

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 2万+

反激电源反馈环路设计:UC3842的FB脚与COMP脚接法对比与选型

在开关电源设计中,PWM控制器与光耦的反馈环路接法直接影响系统稳定性与动态响应。UC3842作为经典电流模式控制器,其FB脚和COMP脚分别对应内部误差放大器的输入与输出,决定了环路补偿由内部还是外部承担。FB脚接法利用内部基准和运放,设计简单、成本低,适合小功率适配器;COMP脚接法旁路内部运放,补偿网络外置,动态响应快、精度高,适合中大功率工业电源。理解两种接法的原理与差异,有助于在反激电源设计中优化环路补偿,提升负载调整率和批量一致性。

weixin_31887307的博客 316

STM32入门教程:无人机控制

我们将会一步一步引导您完成无人机的控制代码,包括无人机的姿态控制、飞行控制和通信控制等。第三步:配置无人机姿态控制 无人机的姿态控制是指控制无人机在空中的倾斜和转向。为了实现姿态控制,我们需要使用加速度计和陀螺仪传感器来获取无人机的姿态信息,并使用PID控制算法来控制无人机的姿态。在这一步骤中,您需要根据您使用的具体传感器和控制算法的要求进行更详细的配置和编码。在通信控制中,您需要考虑到通信的稳定性和可靠性。第五步:通信控制 无人机的通信控制是指与地面站或其他设备进行通信,传输飞行数据和接收飞行指令。

m0_75244442的博客 747

[笔记] MyBatis-Plus XML 配置详解:从基础到高级,全面提升开发效率

本文主要介绍了 MyBatis-Plus XML 配置文件的详细内容,包括基础标签如 select、insert、update、delete,以及动态 SQL 标签如 if、choose-when-otherwise、where、set、trim、foreach 等。此外,还介绍了高级映射如 resultMap 和 sql 标签,以及特殊功能如 bind 标签和 CDATA 区段的使用。最后,通过实用场景示例展示了如何在实际开发中应用这些标签和功能。

LuChangQiu的博客 3154

uniapp(微信小程序) - 实现uniapp小程序电子签名板,横屏手写姓名签名专用写字画板,客户专用签字板,手写签名签字画板组件,手写签名,(详细运行示例,一键复制开箱即用)

uniapp实现微信小程序的电子签名效果,uniapp微信小程序 电子签名 写字板,用uniapp实现微信小程序的电子签名,uniapp微信小程序canvans实现手写签名,记录一个uniapp写的小程序的手写板,横屏,用于签名,unniapp实现电子签名,uniapp怎么做横屏的手写签名,uniapp如何实现签字板,uniapp小程序平台下怎么做电子签名板组件,uniapp电子签名插件,uniapp最好用的电子写字板插件组件源码,实现uniapp 手写签名功能,手写板、签字板,uni-app插件市场最好的

✅ 精选推荐文章 1万+

mybatis-plus 用法总结

MyBatis-Plus核心功能与应用实践 摘要:MyBatis-Plus作为MyBatis的增强工具,提供了简化开发的核心功能。文章详细介绍了其核心特性:1)智能CRUD操作,通过BaseMapper和IService接口实现基础数据操作;2)灵活的条件构造器,支持复杂查询条件构建;3)注解体系(@TableName、@TableId等)实现实体与表的映射配置;4)分页插件与多数据源支持,满足读写分离和分库分表需求;5)自动填充与逻辑删除等实用功能。通过示例代码展示了查询构造、事务控制、枚举处理等典型用法

weixin_65019617的博客 2033

[Godot][入门] 安装与版本选择:3.x 还是 4.x?(按项目类型一键决策)

摘要: Godot引擎版本选择需根据项目需求权衡3.x与4.x。Godot4.x(如4.2)适合3D开发和新项目,支持Vulkan和GDScript2.0,但生态尚不成熟;Godot3.x(如3.5.3)则更适合稳定2D开发、Web导出及依赖现有插件/教程的场景。安装方式极简,官网下载解压即可运行。新手建议:短期高效选3.x,长期探索选4.x,旧项目勿盲目迁移。附版本对比表及决策树,助开发者快速匹配需求。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 910

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【MyBatis-Plus】之queryWrapper.apply用法

官网地址:MyBatis-Plus https://baomidou.com/

林隐的博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

踩坑与成长:WordPress、MyBatis-Plus 及前端依赖问题解决记录

为什么需要为数据库的 email 字段建立索引 为数据库中的 email 字段建立索引是数据库优化的重要实践

布说在见的博客 4403

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

mybatis-plus foreach使用笔记

一、版本 使用版本:<mybatis-plus.version>3.2.0</mybatis-plus.version> 二、使用记录 1.定义更新实体 代码如下(示例): @Data @AllArgsConstructor @Builder @ToString public class DsOwnerChangeDTO { @ApiModelProperty(value = "owner") String owner; @ApiModelP...

欲望以提升热忱 毅力以磨平高山 1万+

笔记:Mybatis和Mybatis-Plus

笔记mybatis

m0_59853401的博客 2052

[Mybatis-Plus] Mybatis-Plus 基础

首先,mybatisplus 支持全部 mybatis 自定义 sql 的方式(mybatisplus 只对 mybatis 做升级而不做改动)。在这个基础上,mybatisplus 的 Wrapper 也为自定义 sql 提供了支持。@Mapper// 上层代码调用该方法时,需传入 Wrapper 实例作为条件构造参数</select>@Test// 构造 Wrapper 对象,作为参数传入 Mapper 层// 调用 Mapper 层@Mapper</update>@Test。

Steve_Albini的博客 793

简述MyBatis、MyBatis-Plus、以及MyBatis-Plus的简单运用

是一个基于MyBatis的轻量级、强大且功能丰富的持久层框架,它进一步简化了与关系型数据库的交互。它是在MyBatis的基础上进行扩展和增强的工具集,提供了更多便捷的开发功能和增强的查询能力。MyBatis-Plus提供了一系列的增删改查操作的封装方法,使得开发人员可以通过简单的API调用完成常见的数据库操作,无需编写繁琐的SQL语句。它还提供了诸如分页查询、条件构造器、Lambda表达式查询等高级查询功能,极大地简化了复杂查询的编写过程。

5062
上一篇: git 基本命令
下一篇: Android面试题(2020)
gitzzp
博客等级 码龄11年 307粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值