首页 > 数据库 >mybatis - [09] 动态SQL

mybatis - [09] 动态SQL

时间:2024-10-21 18:00:06浏览次数:1  
标签:name age 09 user SQL mybatis tb id select

题记部分

 

一、if & test

如果id,name,age不为空,则按照指定的值进行查询。如果这三者都是空(null和空字符串),则该sql执行结果为全表查询的结果集。

<select id="getUserByUser" parameterTytpe="vo.User" resultMap="userResultMap">
    select
        in,name,age
    from
        tb_user
    where 1=1
    <if test="id != null">
        and id = #{id}
    </if>
    <if test="name != null and name !=''">
        and name = #{name}
    </if>
    <if test="age != null">
        and age = #{age}
    </if>
    
</select>

 

 

二、choose & when & otherwise

<select id="getUserByUser" parameterTytpe="vo.User" resultMap="userResultMap">
    select
        in,name,age
    from
        tb_user
    where 1=1
    <choose>
        <when test="id != null">
            and id = #{id}
        </when>
        <when test="name != null and name !=''">
            and name = #{name}
        </when>
        <otherwise>
            and age is not null
        </otherwise>
    </choose>
</select>

 

 

三、where

<select id="getUserByUser" parameterTytpe="vo.User" resultMap="userResultMap">
    select
        in,name,age
    from
        tb_user
    <where>
        <if test="id != null">
            and id = #{id}
        </if>
    </where>
</select>

 

四、trim

有时候,需要去掉一些特殊的SQL语法,比如:and、or。则可以使用trim元素。

 

 

五、set

 

六、foreach

 

七、concat & bind

 

 

 

 

— 业精于勤荒于嬉,行成于思毁于随 —

标签:name,age,09,user,SQL,mybatis,tb,id,select
From: https://www.cnblogs.com/houhuilinblogs/p/18489975

相关文章

  • 众智OA办公系统 Login SQL注入漏洞复现
    0x01产品描述:   ‌众智OA办公系统是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台。‌它凭借先进的技术和人性化的设计理念,实现了信息的快速传递和自动化处理,帮助企业和机构实现信息化、自动化、智能化和标准化的办公管理‌0x02漏洞描述:   众......
  • 数据库运维实操优质文章文档分享(含Oracle、MySQL等) | 2024年9月刊
    本文为大家整理了墨天轮数据社区2024年9月发布的优质技术文章/文档,主题涵盖Oracle、MySQL、PostgreSQL等主流数据库系统以及国产数据库的技术实操,从基础的安装配置到复杂的故障排查,再到性能优化的实用技巧及常用脚本等,分享给大家:Oracle优质技术文章概念梳理&安装配置Oracle授......
  • Windows系统绿色安装MySQL 8.0.39
    下载官方网址:https://dev.mysql.com/downloads/mysql/版本:8.0.39解压到本地磁盘建议解压到固态硬件所在的盘符。配置增加环境变量MYSQL_HOMEMYSQL_HOME=C:\green\mysql-8.0.39-winx64PATH追加%MYSQL_HOME%\bin验证保存上面的配置,新启一个cmd窗口,输入mysql--vers......
  • [java毕业设计]免费分享一套SpringBoot+Vue大学生(校园)志愿者管理系统【论文+源码+SQ
    大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue大学生(校园)志愿者管理系统,分享下哈。项目视频演示【免费】SpringBoot+Vue大学生(校园)志愿者管理系统Java毕业设计_哔哩哔哩_bilibili项目介绍随着信息化时代的到来,管理系统都趋向于智能化、系统化,校园志愿者......
  • 揭秘PostgreSQL的隐藏奥秘:物理、内存与进程模型的深度解析与高效优化策略
    引言PostgreSQL作为一款强大的开源关系型数据库管理系统,以其灵活性、高性能和丰富的功能特性在全球范围内受到广泛欢迎。其底层架构的精心设计,使其在处理复杂查询、支持多种数据类型和高并发用户访问时表现出色。理解PostgreSQL的底层架构不仅有助于提升系统性能,还能帮助开......
  • 突然断电重启mysql报错[ERROR] [MY-013183] [InnoDBl Assertion failure: trxotypes.h
    当你遇到断电重启后MySQL报告[ERROR][MY-013183][InnoDB]Assertionfailure:trxotypes.h:541:m_rsegs_n<2这样的错误时,这通常指示InnoDB存储引擎在尝试恢复或初始化其内部数据结构时遇到了问题。这个问题很可能是由于断电导致的未正常关闭和文件系统的不一致状态。......
  • SpringBoot 2.7.18 集成 Mybatis Plus + Druid
    目录Pom依赖yml配置Config配置Mapper扫描EntityMapper.xmlMapper-SysMenuMapperServiceController一并附上Mybatis和MybatisPlus的使用区别MyBatisMapper.XML标签使用说明Pom依赖Mybatis<!--统一管理jar包版本--><properties><druid-boot.version>1.......
  • count(*)、count(1)哪个更快?面试必问:通宵整理的十道经典MySQL必问面试题Jv
    合集-面渣逆袭(10)1.阿里面试:Java开发中,应如何避免OOM02-212.美团面试:Kafka如何处理百万级消息队列?02-203.Java异常处理的20个最佳实践:告别系统崩溃02-224.揭秘一线大厂Redis面试高频考点(3万字长文、吐血整理)02-235.美团面试:说说OOM三大场景和解决方案?(绝对史上最全)02-246.面试......
  • mybatis的一对多,多对一,以及多对多的配置和使用
      根据这个应用场景,我们需要获取在查询一个用户信息的时候还要去读取这个用户发布的帖子现在我们来看一看用户级联文章在JavaBean中的编写方式,这就是一对多在JavaBean中的配置现在我们再来看一看Mybatis的Mapper该如何编写一对多?很简单,就是在resultMap标签中配置<coll......
  • MySQL注入load_file常用路径
            在MySQL注入攻击中,攻击者可能会尝试利用LOAD_FILE()函数来读取服务器上的敏感文件。LOAD_FILE()函数允许从服务器的文件系统中读取文件,并将其内容作为字符串返回。然而,这个函数需要满足一定的权限条件,并且文件路径必须是服务器能够访问的。WINDOWS下:c:/boo......