MyBatis @Select注解介绍:基本用法与动态SQL拼写

Mybatis SQL注解使用场景 阅读详情
AI摘要

本文详细介绍了MyBatis框架中@Select注解的基本用法与动态SQL拼写技巧,包括如何替代XML中的select标签,实现变量替换及复杂逻辑判断。

1、@Select注解基本用法

@Select注解的目的是为了取代xml中的select标签,只作用于方法上面。下面看一下@Select注解的源码介绍:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Select
{
    String[] value();
}

从上述可以看到两点信息:

(1)@Select注解只能修饰方法
(2)@Select注解的值是字符数组。

所以,@Select注解的用法是这样的:

@Select({ "select * from xxx", "select * from yyy" })
Person selectPersonById(Integer id);

虽然@Select注解的值是字符数组,但是真正生效的应该是最后那条SQL语句。这一点请大家要留意一下。

2、@Select注解动态SQL拼写

普通的字符串值,只能实现变量的替换功能,如下所示,

@Select("select * from t_person where id = #{id}")
Person selectPersonById(Integer id);

如果要想实现复杂的逻辑判断,则需要使用标签,如下所示:

@Select("<script> select * from t_person where id = #{id} 
<when test='address !=null'> and address = #{address} 
</when> </script>")
Person selectPersonById(Integer id);

其实,标签并非是@Select注解专用的,其他的注解,例如@Insert,@Update等等,都可以使用的。

3、参考:

MyBatis @Select注解介绍:基本用法与动态SQL拼写

「HTML和CSS入门指南」select 标签详解 select 标签是一个重要的标签,在 HTML 中用于创建下拉列表,使用户可以从预定义的选项中进行选择。使用 select 标签可以帮助您收集用户输入,并提供更好的用户体验。在使用 select 标签时,请注意选择正确的属性和方法、提供适当的标签、描述文本和错误提示、验证表单数据,并避免样式和行为问题。 阅读详情

相关推荐

ROS2仿真抓取分拣案例,使用myCobot 280机械臂结合ROS2系统搭建机械分拣站

本案例展示了如何利用myCobot 280 urdf模型构建一个对象分类站,并在ROS2 jazzy中完成运动规划。

m0_71627844的博客 2125

@Select的使用说明

@Select 注解的使用作用 作用 简便、快速去操作 sql 对一些简单的实现常见操作 sql 的应用: 1、 只需要在 mapper 中方法上加入 @Select(),然后在括号中写入需要实现的 sql 语句即可 例如: @Select(“select \* from Type where id = #{id, jdbcType=LONG} and code= #{code, jdbcType=VARCHAR}”) Type selectTypeById(@Param(“id”) Long id

鳄鱼儿 2万+

GraphRAG + Ollama 本地化部署实战:从零搭建知识图谱问答系统

本文详细介绍了如何在本地部署GraphRAG与Ollama,搭建一个完全自主可控的知识图谱问答系统。通过逐步指导环境配置、项目初始化、核心设置修改以及源码适配,成功将GraphRAG从依赖云端OpenAI API转向本地Ollama服务,并选用qwen2.5:7b和nomic-embed-text模型。该方案有效解决了数据隐私与持续API成本问题,特别适合中小企业构建内部知识库或智能客服系统。

x2y3z4a5b的博客 918

Mybatis之@Select注解

Select注解的目的是为了取代xml中的select标签,只作用于方法上面。@Select注解基本用法。抛弃了传统的xml形式。例如(简单的sql)

qq_20236937的博客 1万+

ESP32+MAX7219二进制时钟设计与嵌入式时间映射实践

二进制时钟是嵌入式系统中数据表示与物理呈现深度耦合的典型范例,其核心在于将时间语义(年月日时分秒)解构为比特位,并通过LED点阵的空间权重布局实现直观识别。该设计依托RTC模块提供时间基准,依赖SPI协议完成微控制器与专用驱动芯片(如MAX7219)的可靠通信,涉及寄存器级配置、位图坐标变换、软硬件时序对齐等关键原理。技术价值体现在低资源占用下的高可读性人机交互,适用于教学演示、极客项目及嵌入式UI原型开发。本文聚焦ESP32平台在MicroPython环境下,结合MAX7219驱动8×8点阵实现高可靠性二

weixin_42160645的博客 301

指标异常检测和诊断

贡献度,即用定量衡量的方式来说明:一个指标YYY的异动△Y△Y△Y,具体是由其中哪些成分XiX_iXi​带来了多少异动△Yi△Y_i△Yi​?

qq_43349542的博客 3164

【Mybatis】@Select与@Update注解写法总结

MyBatis 中的 `@Select` 注解用于直接在接口方法上编写 SQL 语句,避免了使用 XML 映射文件。`@Select` 注解的使用使得 SQL 语句的编写更加直观,并且可以直接与接口方法关联,提高了开发效率和代码的可读性。

慕白Lee的博客 1万+

基于STM32设计的智能门锁(微信小程序+手机APP等多种方式开锁)(188)

当前智能门锁项目是基于STM32微控制器、ESP8266-WIFI模块、OLED显示屏、指纹模块、蓝牙模块、门禁刷卡模块、烟雾检测模块、火光检测模块、温湿度检测模块等硬件设备开发的一种智能门锁系统

1万+

Mapper层注解讲解

其实,标签 注解专用的,其他的注解,例如@Insert、@Update、@Delete等等,都可以使用的。注解的值是字符数组,但是真正生效的应该是最后那条SQL语句。注解时,参数只能有一个,可以是一个基本的数据也可以是一个。与接口进行对应的,如果写了两个同名的接口,就会导致。普通的字符串值,只能实现变量的替换功能,实现简单的。完全可以省略不写,也完全可以实现自动注入,但是在。里面取出来的,取出来的值就是方法中形式参数。这个注解,那么映射文件中的标签中可以不用写。层接口上,作用是将接口的一个实现类交给。

上善若泪 6万+

7、树莓派故障排查全攻略

本文详细介绍了树莓派在使用过程中常见的各类故障及其排查方法。内容涵盖键盘鼠标诊断、电源诊断、显示诊断、启动诊断、网络诊断以及紧急内核的使用,提供了具体的解决方法和实用建议。同时,文章总结了故障排查流程、常见故障及解决方法的汇总,并给出了注意事项和操作建议,帮助用户高效解决树莓派使用过程中的问题,确保其稳定运行。

cream的博客 323

用python画年度和月度的日历图

用python画各种日历图,可以区分月份来画也可以画一整年的,日历图中可以体现自己的信息

weixin_44853840的博客 2138

Mybatis注解用法

MyBatis(八) mybatis注解 一、mybatis简单注解 1、@Select、@Results、@Result 2、@Delete、@Param、@ResultMap 3、@Insert、@SelectKey 4、@Delete、@Param 5、@Update 二、动态SQL 1、简单处理,直接使用``脚本 2、使用Provider注...

u013452337的博客 5万+

手把手教你学 Simulink (1.3):探索Simulink模块库的奇妙世界

Simulink模块库按照功能分为多个类别,每个类别包含专门用于特定任务的模块。% 打开Simulink库浏览器% 或者以编程方式获取库列表disp('可用的库列表:');end常用模块(Simulink):最基础和最常用的模块信号处理模块(DSP System Toolbox):专业信号处理工具通信模块(Communications Toolbox):通信系统设计控制系统模块(Control System Toolbox):控制系统设计与分析% 创建自定义模块库。

QQ_778132974的博客 382

MyBatis @Select注解深度解析

在当今的软件开发领域,数据库操作是构建应用程序不可或缺的一部分。特别是在使用MyBatis框架进行数据库交互时,@Select注解扮演着至关重要的角色。想象一下,一个典型的企业级应用,其业务逻辑往往涉及大量的数据库查询操作。如果这些操作不能高效、准确地执行,那么整个应用的性能和稳定性都将受到严重影响。在这种背景下,介绍MyBatis核心知识点之@Select:概述显得尤为重要。

我是Java程序员廖志伟,感谢朋友们的支持! 1574

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Mybatis 注解开发 + 动态SQL

Hello 大家好我是橙子同学,今天分享注解Mybatis注解开发+动态sql 目录 每文一铺垫(今天有小插曲哦) 注解开发 添加@Insert 删除@Delete 查询@Select 修改@Update 实现结果集封装@Result 实现一对一结果集封装@one 实现多对多结果集封装 @Many 动态SQL 标签<set> <if> 标签<wher...

m0_65729948的博客 1万+

WINCC7.3破解文件

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

Mybatis @Select注解中如何拼写动态sql

@Mapper public interface DemandCommentMapper extends BaseMapper<DemandComment>{ @Select("SELECT " + "a.id as 'id',a.create_date as 'createDate',a.content as 'content'," ...

Ryze 660

老版QQ原生表情gif动态

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

【Mybatis】@Select与@Update注解动态SQL实战精讲

本文深入解析MyBatis中@Select与@Update注解的动态SQL实战技巧,涵盖基础查询、结果集映射、动态SQL构建及批量操作等核心用法。通过实际代码示例展示如何优化复杂SQL场景,提升开发效率,同时分享性能优化与SQL注入防护等最佳实践,助力开发者掌握MyBatis注解开发精髓。

liudaoru - 悟 471

Mybatis使用注解实现复杂动态SQL

Mybatis使用注解实现复杂动态SQL

小张的博客 2961

mybatis @Select注解中如何拼写动态sql

package cn.erongcai.hrplatform.dao.demand; import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select

勿忘初心的博客 8万+

在Mybatis中 @Select注解中如何拼写动态sql

现在随着mybatis plus的应用,越来越多的弱化了SQL语句,对于单表操作可以说几乎不需要进行自己编写SQL语句了,但对于多表查询操作目前mybatis plus还没有很好的支持,还需要自己编写SQL语句,如:import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibati...

无情的你,无情的雨! 2万+

mybatis @Select注解 使用IN

场景:mybatis @Select注解 使用IN,后接参数 有效方式: import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.springframework.st...

Hunter的专栏 1万+
下一篇: Raft算法系列教程1:Leader选举
计算机小书童
博客等级 码龄7年 10粉丝 8原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值