idea中基于mybatis下的条件查询与动态条件查询

MyBatisX插件实战:一键生成复杂SQL与多表联查代码 本文详细介绍了MyBatisX插件的实战应用,重点演示如何利用其可视化功能一键生成复杂SQL与多表联查代码。通过连接数据库、配置生成器,开发者可快速构建涉及多表关联的查询,自动生成DTO、Mapper接口及XML映射文件,极大提升开发效率,告别手写SQL的繁琐与易错。 阅读详情

条件查询

①多条件查询三种方式

a.散装条件查询:(@Param("sql占位符的名称")参数类型 参数值)

b.封装对象查询:对象的属性名必须与sql占位符的名称一致

c.封装map集合查询:键值和sql占位符的名称一致

示例:

 

public interface BrandMapper {
//1、散装条件
List<Brand> selectByCondition(@Param("id")int id,@Param("name") 
	String name,@Param("businessName")String bussinessName);
//2、封装对象
List<Brand> selectByCondition(Brand brand);
//3、封装map集合
List<Brand> selectByCondition(Map map);
}

BrandMapper.xml中的select语句

<select id="selectByCondition" resultMap="resultBrandMap">
    select * from brand where
    id=#{id}
    and name like #{name}
    and businessname like #{businessName}
</select>

因为是like是模糊查找在对用户输入的字段需要添加"%",这个根据实际需要进行处理

例如:

String name="神州";
String businessName="神州";
//处理参数
name="%"+name+"%";
businessName="%"+businessName+"%";

②动态条件查询

上述条件查询存在一个问题就是当用户只提供一个查询条件时,会查询失败,所以需要动态查询
mybatis中提供了很强大的动态sql查询功能
*if,where标签
*choose(相当于switch),when(相当于case)

BrandMapper.xml中的select语句变为

<!--动态多条件查询-->
<selectid="selectByCondition"resultMap="resultBrandMap">
    select *
    from brand
    <where>
          <if test="id !=null">
               and id = #{id}
          </if>
          <if test="name!= null and name!='' ">
              and name like #{name}
          </if>
      <if test="businessName!= null and businessName!=''">
          and businessname like #{businessName}
      </if>
    </where>
</select>

<!--动态单条件查询-->
<select id="selectByCondition" resultMap="resultBrandMap">
        select *
        from brand
        <where>
            <choose>
                <when test="id !=null">
                    id = #{id}
                </when>
                <when test="name!= null and name!=''">
                    name like #{name}
                </when>
                <when test="businessName!= null and businessName!=''">
                    businessname like #{businessName}
                </when>
                <otherwise>/*相当于default,在where标签内可以不用写*/
                    1=1
                </otherwise>
            </choose>
        </where>
    </select>

08-Mybatis 动态sql查询 动态 SQL 是 MyBatis 的强大特性之一。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。MyBatis 动态 SQL 查询是一种可以根据不同的查询条件生成不同 SQL 语句的功能,方便实现灵活的查询操作。 阅读详情

相关推荐

Mybatis多条件查询

我们来简单说一下,条件查询就是在查询的时候,根据多个条件进行查询,例如查询学生成绩的时候,我们要查找全班姓李和年龄为12的学生的成绩,那么这个条件查询分别是姓名和年龄。我们直接来看代码,看一下条件查询如何编写。在看条件查询之前,我们需要学会mybatis入门案例,大家可以点击查看mybatis入门案例。

HaiMeng一起奋斗 3146

Mybatis动态查询条件构建的历史演进:MyBatis,MyBatis-Generator-Example,MyBatis-Plus,MyBatis-Flex

Mybatis动态查询条件构建的历史演进:MyBatis,MyBatis-Generator-Example,MyBatis-Plus,MyBatis-Flex。 MyBatis-Generator动态查询条件构建。 updateByExampleSelective的含义。

宋冠巡的博客 1843

Springboot 自定义 Mybatis拦截器,实现 动态查询条件SQL自动组装拼接(玩具)

Springboot 封装整活 Mybatis 动态查询条件SQL自动组装拼接

默默不代表沉默 6977

MyBatis进阶:掌握MyBatis动态SQL与模糊查询、结果映射,让你在面试中脱颖而出!!

本文将从进阶的角度出发,详细介绍MyBatis的动态SQL和模糊查询,同时也会讲解结果映射的技巧。通过学习本文,你将能够更加熟练地使用MyBatis,提高自己的开发效率,为面试增添信心。快来学习吧!如果你正在寻找一份高薪稳定的工作,那么掌握MyBatis动态SQL与模糊查询、结果映射是必不可少的技能。这些技能可以让你在面试中展现出自己的实力,从而获得更好的职业发展机会。所以不要犹豫了,赶快来学习吧!

万维网连五洲,二进制写尽天下事,喜欢结识新伙伴寻找志同道合的朋友,欢迎一起探讨学习 1735

DrawCall、Batches、SetPassCalls的区别和联系

一、DrawCall、Batches、SetPassCalls的基本理解 我们先从图形渲染的角度对这些概念做一个基本的理解。 1.1 DrawCall DrawCall实际上指的是一次图形渲染接口的调用,比如OpenGL的glDrawArrays或者glDrawElements的一次调用,以及DirectX的DrawPrimitive或者DrawIndexedPrimitive。因此,DrawCall可以简单理解为一次渲染指令调用。 1.2 Batches 我们知道,在调用DrawCall之前,需要设置渲染

远行's Blog 6378

LabVIEW+数据库应用系列保姆级教程,第一篇数据库连接

目录LabVIEW连接数据库的方法连接MySQL连接Oracle,SQL Server,Access等 LabVIEW连接数据库的方法 1、创建udl(Universal Data Link)是通用数据连接文件。界面操作,简单快捷。 2、编写连接字符串。需要熟悉连接字符串的结构,容易出错。 3、其他… 本教程教你使用第1种方法,也是最简单、最常用的方法。 连接MySQL 1、在MySQL Installer内安装MySQL Connector/ODBC,建议安装32位(X86),如下图: 2、创建ODBC

wwplh5520370的博客 1万+

IDEA+mybatis实现学生信息查询系统

本文介绍了使用MyBatis实现学生信息管理系统的过程。主要内容包括:1)数据库表创建与数据初始化;2)创建学生实体类;3)封装MyBatis工具类;4)实现多条件查询(按姓名、专业或全部查询)和单条件查询(ID小于5的学生)。文中提供了完整的代码示例和可能遇到的错误解决方案,并包含数据库SQL脚本和Java实体类、工具类的具体实现。该项目基于《Java EE企业级应用开发教程》第2版第3章课后习题实现,源代码可通过给定链接获取。

城南蝈蝈 671

VS Code 配置 LaTeX 写作环境完全指南

本文详细介绍了如何在 VS Code 中配置 LaTeX 写作环境,涵盖了从安装必备组件到高级功能的全面指南。首先,用户需要安装 LaTeX 发行版(如 TeX Live 或 MiKTeX)和 VS Code 插件(如 LaTeX Workshop)。接着,通过修改 settings.json 和 keybindings.json 文件,用户可以自定义编译、查看快捷键等基础配置。文章还提供了高效写作技巧,如使用代码片段和多文件项目管理,并介绍了高级功能如反向同步、公式预览和参考文献管理。此外,针对常见问题(

weixin_70043030的博客 1984

使用Mybatis 在IDEA中的操作

1.常用快捷键 2.IDEA连接数据库 jdbc:mysql://localhost:3306/yang?serverTimezone=GMT

weixin_44086832的博客 1216

LTSPICE使用教程:导入第三方库模型进行仿真

LTSPICE导入第三方SPICE模型进行仿真,以英飞凌的第三方.lib模型为实例进行详解

焊武大帝的专栏 3万+

redhawk:avgTW maxTW minTW minWC的区别

分析dynamic ir drop报告时会遇到这几个值,avgTW maxTW minTW minWC,如下图。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 696

mybatis注解——模糊查询

1.概要 本文主要记录我在学习mybatis注解时 多表的动态模糊查询 什么叫动态查询,什么又叫做非动态查询呢? 像这种代码是非动态的,因为where后面的条件是固定的,只能有确定的一个条件,不能增加也不能删除改条件,这就是非动态查询 @Select("select * from t_blog where type_id=#{typeId}") 如果你理解了非动态查询,动态查询就很好理解了,动态查询和非动态查询的区别是,动态查询的条件是非固定的。 动态查询的好处 在淘宝网上购买商品时,你根据个人喜

Mrgth的博客 843

robosuite 入门教程(一)安装与基本用法

摘要:Robosuite是基于MuJoCo的模块化机器人仿真框架,提供标准化基准测试环境和多样化机器人控制功能。作为ARISE计划的一部分,该框架支持强化学习、模仿学习等算法研究,包含程序化环境生成、多模态传感器、多种控制器及遥操作设备。支持macOS/Linux系统,提供详细安装指南和功能演示脚本,包括随机动作测试、控制器验证、域随机化等。最新版本v1.5新增人形机器人支持、全身控制器和照片级渲染功能,旨在降低机器人学习研究门槛,促进算法开发与评估。

2506_90492529的博客 1268

JavaWeb、Maven与Mybatis框架

与数据库进行操作的代码称为持久层。三层框架:表现层,业务层,持久层 -> 前端、后端、数据库右键单击resources新建文件,文件格式与Mapper接口的包名一致,中间用 / 做分隔符文件创建成功后,将Mapper映射文件拖入文件夹中编译Maven项目查看class文件,Mapper接口与映射文件在同一文件夹下2、设置SQL映射文件的namespace为接口的全限定名包名.类名......

飞翔的企鹅的博客 842

Ardupilot chibios IO固件,IO与FMU通信,固件下载(3)

目录 文章目录目录摘要 摘要 本节主要记录自己学习IO与FMU通信

陌城烟雨 2801

杰理AC696N使用ADC检测电位器调音量教程

本教程详细介绍了在杰理AC696N芯片上使用ADC功能检测电位器电压值的方法。主要内容包括:硬件连接方式(电位器VCC/OUT/GND分别接3.3V、PA3引脚和地线),10位ADC配置(0-1023对应0-3.3V),以及核心代码实现。关键步骤涉及ADC采样通道初始化、GPIO引脚配置(关闭数字输入和上下拉电阻),以及通过定时器实现50Hz采样频率。教程还详解了ADC值到系统音量的线性映射算法,并提供了完整的代码示例和调试方法,帮助开发者实现电位器实时控制音量的功能。

qq_42014563的博客 1246

JavaWeb开发 —— MyBatis动态SQL

XML映射文件、MyBatis动态SQL三类标签:if、foreach、sql&include

hdakj22的博客 829

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Mybatis框架介绍

Mybatis框架学习,完成对数据库操作,包括增删改查。注意增删改的事务关闭。

danqiuli的博客 150

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

MyBatis入门指南:从基础配置到高级特性

ORM框架是Java持久层开发的核心技术,MyBatis作为半自动化的轻量级框架,通过XML配置和接口绑定简化了数据库操作。其核心原理是将SQL与Java代码解耦,提供动态SQL生成能力,在保证性能的同时兼顾开发效率。相比全自动ORM,MyBatis允许开发者直接控制SQL语句,特别适合复杂查询场景。通过SqlSessionFactory、Mapper接口等组件,可以快速实现CRUD操作。在企业级应用中,MyBatis的二级缓存、插件系统等高级特性能够有效提升系统性能。结合Spring Boot集成,开发者

weixin_33853827的博客 356

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

基于MaBatis编写动态SQL语句

目录前言一、动态SQL1. 介绍2. 在IDea,基于MaBatis完成动态SQL步骤2.1 创建实体类2.1.1 创建dto实体类2.1.2 编写实体类2.2 创建接口函数2.2.1 创建文件2.2.2 编写代码2.3 创建映射文件2.3.1 创建文件2.3.2 编写文件(动态SQL)2.4 测试即可 前言 提示:具体项目创建、MyBatis配置等请看https://blog.youkuaiyun.com/weixin_45928161/article/details/119766861 一、动态SQL 1. 介

weixin_45928161的博客 688

Mybatis

初学Mybatis,比较浅薄,仅供参考。如有不足,多多指教

lh16130130282的博客 886

Javaweb5==mybatis根据需求写CRUD单表查询12个方法全

需求如下 电商后台高保真原型(首页)https://www.pmdaniu.com/storages/122645/74ccff58678d80583ea43a55547173eb-1818/%E7%94%B5%E5%95%86%E5%90%8E%E5%8F%B0%E9%AB%98%E4%BF%9D%E7%9C%9F%E5%8E%9F%E5%9E%8B%EF%BC%88%E9%A6%96%E9%A1%B5%EF%BC%89.html ...

hebian1994的博客 196

在IDEA中实现数据库交互

此项目是在IDEA中使用Java语言进行后端操作,链接上数据库。该项目是一个基于和的用户管理系统,核心功能是通过动态条件分页查询用户数据。以下是各模块的详细说明1. 项目结构与核心组件项目结构如下图1.1 主启动类 (作用:Spring Boot 应用的入口,配置全局设置。关键代码@MapperScan("com.example.mybatisplus.mapper") // 扫描Mapper接口说明:通过注解自动扫描mapper包下的接口,无需手动编写 XML 映射文件。完整代码。

2302_80243652的博客 1282

《web应用技术第九次课后作业》

要注意一点,在xml中配置的namespace和ID都要和mapper保持一致,并且已经编写了好了xml映射文件的时候mapper层里面的@方法要被注释掉,不然会导致程序运行错误,显示有两个映射(实质上就是映射只能有唯一一个),collection:要遍历的集合;item:遍历出来的元素;open:遍历开始前拼接的sql片段;close:遍历结束后拼接的sql片段。(一)仓库创建以及idea的连接。映射文件的形式来映射sql语句;的方式,实现条件查询的分页。<FOREACH>循环。

2301_79602950的博客 411

Java web(二)MyBatis

MyBatis是一款持久层框架,用于简化JDBC开发。JavaEE三层架构:表现层[页面展示]、业务层[逻辑处理]、持久层[负责将数据保存到数据库]。由于JDBC存在一些缺点:硬编码(例如,参数、SQL语句写入到代码中)、操作繁琐(手动设置参数和封装结果集),MyBatis就会设置配置文件、自动完成繁琐操作来解决上述问题。

shendaiyan的博客 215

小说项目总结

最近的一个多月的时间里,一直都在做一个小说网站,通过这次项目,遇到了很多问题,但自从自己阳了之后,几乎一直在医院输水,导致本该我写的部分都交给了我们组的另外两名后端,自己写的部分代码都没有进行交互,从上周开始,进行项目的完善,自己也从医院里出来了,在完善的过程中遇到了很多的问题,也收获了很多。昨天在写项目时,遇到了一个很奇怪的问题,tomcat启动不起来,日志报错显示的是bean装配失败,但把代码看了好久,该有的注解等等也都有,但就是一直报错。

zzx0419_的博客 278
上一篇: Mybatis的Mapper配置文件练习查询所有
下一篇: HTTP请求数据格式与响应数据格式知识讲解
ModestHC
博客等级 码龄7年 56粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值