@Param注解的用法

2023-11-07

1、概述
首先明确这个注解是为SQL语句中参数赋值而服务的。

  @Param的作用就是给参数命名,比如在mapper里面某方法A(int id),当添加注解后A(@Param("userId") int id),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了。将参数值传如SQL语句中,通过#{userId}进行取值给SQL的参数赋值。

2、实例:
实例一:@Param注解基本类型的参数

mapper中的方法:

public User selectUser(@Param(“userName”) String name,@Param(“password”) String pwd);
映射到xml中的标签

select * from user where user_name = #{userName} and user_password=#{password} 其中where user_name = #{userName} and user_password = #{password}中的userName和password都是从注解@Param()里面取出来的,取出来的值就是方法中形式参数 String name 和 String pwd的值。
实例二:@Param注解JavaBean对象

SQL语句通过@Param注解中的别名把对象中的属性取出来然后复制

mapper中的方法: 

public List getAllUser(@Param(“user”) User u);
映射到xml中的标签

select from user t where 1=1 and t.user_name = #{user.userName} and t.user_age = #{user.userAge} 3、注意点 当使用了@Param注解来声明参数的时候,SQL语句取值使用#{},${}取值都可以。

当不使用@Param注解声明参数的时候,必须使用的是#{}来取参数。使用${}方式取值会报错。

不使用@Param注解时,参数只能有一个,并且是Javabean。在SQL语句里可以引用JavaBean的属性,而且只能引用JavaBean的属性。

@Select("SELECT * from Table where id = #{id}")
Enchashment selectUserById(User user);

————————————————
版权声明:本文为CSDN博主「晓风残月一望关河萧索」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Sunshineoe/article/details/114697944

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@Param注解的用法 的相关文章

随机推荐

  • JavaScript 基础工具清单

    转载至 https linux cn article 5935 rss html 在训练营中 为扩展学员们的编程能力 我们给他们介绍了一些工具和库 目前有位JavaScript学员Kalina 他汇总了这些工具的清单 以分享给其他的代码爱好
  • 中移链合约常用开发介绍(五)合约项目编译

    01 目的 本文档介绍了工程化开发智能合约项目的工程树目录 介绍了各个文件夹及文件的含义和用途 本文档将沿用之前文章中实现的地址簿合约内容 以初始化项目为例展开介绍 适合刚接触合约开发的开发人员用来了解智能合约项目 帮助其快速了解以及上手智
  • NULL 与 nullptr

    在过去 我们如果要表示一个指针为空 我们条件反射肯定会这么写 int p NULL 然而啊 有没有想过这是有问题的 比如下面的这段代码 include
  • 2023华为OD机试真题【最长公共后缀】

    前言 python参考点我 题目内容 编写一个函数来查找 字符串数组 中的最长公共后缀如果不存在公共后缀 返回固定字符串 Zero 补充说明 1 字符串长度范围 2 1000 2 字符串中字符长度范围为 1 126 输入描述 abc bbc
  • vue3表格按需导出excel

    效果图展示 不要英文字段 excel内容展示 隐藏英文字段 首先安装xlsx依赖 npm install xlsx save export default imported as XLSX was not found in xlsx 当出现
  • mysql对表列数和行大小的限制

    列计数限制 MySQL对于每个表具有4096个列的硬限制 但给定表的有效最大值可能较少 精确的列限制取决于几个因素 表的最大行大小限制列的数量 可能是大小 因为所有列的总长度不能超过此大小 请参阅行大小限制 单个列的存储要求限制了适合给定最
  • Spring对Cache的支持

    从3 1开始 Spring引入了对Cache的支持 其使用方法和原理都类似于Spring对事务管理的支持 Spring Cache是作用在方法上的 其核心思想是这样的 当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓
  • 数据仓库之ODS层设计概要

    ODS层辨析 ODS全称是Operational Data Store 即操作数据存储 Inmon VS Kimball Bill Inmon的定义 ODS是一个面向主题的 集成的 可变的 当前的细节数据集合 用于支持企业对于即时性的 操作
  • 《超市订单管理系统》-SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第十二天)三个框架的整合,进行Web项目开发

    超市订单管理系统 SSM框架的学习与应用 Spring Spring MVC MyBatis Java EE企业级应用开发学习记录 第十二天 三个框架的整合 进行Web项目开发 其实我们昨天的项目也已经初步整合的三个框架 只差最后一步就是对
  • SBC 功能与部署

    SBC是IMS网络边缘用于实现IP接入 互通和安全保护的网元 存在于接入网络与IMS网络之间或不同IMS网络之间 是用户接入IMS的入口点 SBC作为B2BUA将用户和IMS核心网进行隔离 SBC的主要功能包括 注册管理功能 NAT穿越功能
  • 软件测试实验

    文章目录 软件测试实验 实验一 单元测试JUnit4基础 基础知识 实验内容 实验二 单元测试JUnit4进阶 实验三 Selenium功能测试 了解Selenium自动化测试工具 实验内容 实验四 Selenium WebDrive功能测
  • 局域网搜索-秒搜神器:everything 如果打造etp服务器,并且在本地可以双击打开

    起因 最近要经常到公司2000G的硬盘寻找数据 利用Windows自带的局域网共享搜索 速度非常缓慢 方案 就想到利用秒搜工具everything来做局域网工具 网页模式的很简单就不说了 这里说的是映射到本地硬盘的模式 步骤 主要是在服务器
  • Laravel_migrate 之后报Field 'is_active' doesn't have a default value

    例如 首先保证mysql的版本大于5 7 因为json是5 7之后支持的 找到database php 把strict设置为false
  • Uncaught SyntaxError: Unexpected identifier错误的解决方法

    在js中出现下面的错误 Uncaught SyntaxError Unexpected identifier可能的原因是 1 有可能是字符串类型的 但是并没有加双引号 2 有的是没有加逗号 仔细检查便好 3 如果是jsp的话仔细检查下js中
  • C#知识系列:程序不包含适合于入口点的静态“Main”方法

    参考 不包含适合于入口点的静态 Main 方法
  • 趣谈操作系统原理,存储管理之页式、段式、段页式存储

    一 概述 非连续分配管理方式允许一个程序分散地装入到不相邻的内存分区 根据分区的大小是否固定分为分页式存储管理方式和分段式存储管理方式 分页存储管理方式中 又根据运行作业时是否要把作业的所有页面都装入内存才能运行分为基本分页式存储管理方式和
  • centos 7 安装mariadb(转)

    一 检测本机是否已安装mariadb 或者MySQL rpm qa grep mariadb rpm qa grep mysql 下面是我的结果 因为我已经安装过了 二 如果检测到有类似的安装包 建议先全部删除 重新安装 否则会有一些配置被
  • CodeForces - 6B

    题目链接 import java util Scanner public class Main public static void main String args Scanner sc new Scanner System in int
  • 计算机网络复习资料

    选择与填空 概述 从通信双方信息交互的方式来看 通信有三种基本的方式 分别是单向通信 双向交替通信 和 双向同时通信 如果收发两端之间的传输距离为 10km 信号在媒体上的传输速率为 2 105km s 数据长度为 1000B 数据发送速率
  • @Param注解的用法

    1 概述 首先明确这个注解是为SQL语句中参数赋值而服务的 Param的作用就是给参数命名 比如在mapper里面某方法A int id 当添加注解后A Param userId int id 也就是说外部想要取出传入的id值 只需要取它的