Mybatis中@Param的用法和作用

用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中

我们先来看Mapper接口中的@Select方法

package Mapper; @Mapper
public interface Mapper { @Select("select s_id id,s_name name,class_id classid from student where  s_name= #{aaaa} and class_id = #{bbbb}") public Student select(@Param("aaaa") String name,@Param("bbbb")int class_id);  @Delete...... @Insert...... }

1、@Select(……)注解的作用就是告诉mybatis框架,执行括号内的sql语句

  2、s_id id,s_name name,class_id classid  格式是 字段名+属性名,

  例如s_id是数据库中的字段名,id是类中的属性名

  这段代码的作用就是实现数据库字段名和实体类属性的一一映射,不然数据库不知道如何匹配

  3、where  s_name= #{aaaa} and class_id = #{bbbb} ,表示sql语句要接受2个参数,一个参数名是aaaa,一个参数名是bbbb;

  如果要正确的传入参数,那么就要给参数命名,因为不用xml配置文件,那么我们就要用别的方式来给参数命名,这个方式就是@Param注解

  4、在方法参数的前面写上@Param("参数名"),表示给参数命名,名称就是括号中的内容

  public Student select(@Param("aaaa") String name,@Param("bbbb")int class_id); 

  给入参 String name 命名为aaaa,然后sql语句....where  s_name= #{aaaa} 中就可以根据aaaa得到参数值了。

  5、如果传入的参数是基本类型参数和实体类对象。

public List<student> selectuser(@Param(value = "page")int pn ,@Param(value = "st")student student);<select id="selectuser" resultType="com.user.entity.student">SELECT * FROM studentwhere sname like concat(concat("%",#{st.sname}),"%")LIMIT #{page} ,5
</select>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用类回顾之(String类)

String类&#xff1a; String类:表示不可变的字符串,当前对象创建完毕之后,该对象的内容(字符序列)是不能改变的,一旦内容改变就是一个新的对象. String对象的创建: 1):直接赋一个字面量: String str1 “ABCD”; 2):通过构造器创建: String str2 new String(“ABCD”); 两种方…

ad如何设置pcb板子形状_俺老孙画个圈板框与安装孔PCB系列教程110

点击上方蓝字关注我们画个板子&#xff0c;要先划圈&#xff0c;把所有笨蛋元器件圈起来。这个圈&#xff0c;就是板子的边框&#xff0c;简称板框。自定义板框形状比较复杂的电路板&#xff0c;一般由专业的CAD结构工程师设计&#xff0c;并提供DWG或者DXF格式的文件给电子工程…

Mybatis查询传递单个参数和传递多个参数用法

一&#xff1a;单个参数&#xff0c;Mybatis不会做特殊处理 二&#xff1a;多个参数&#xff0c;Mybatis会做特殊处理 1:传递多个多个参数时候&#xff0c;第一种写法如下 比如传递了两个参数&#xff0c;用 #{param1} and #{param2}取值 2:传递多个多个参数时候&#xff0c…

No.7 nginx、nfs、集群

安装并启动nginx服务 1、二进制安装nginx包 ~ yum -y install epel-release && yum -y install nginx #配置环境 关闭防火墙 ~ iptables -F // 或 systemctl stop filewallf 2、作为web服务修改配置文件 ~ vim /etc/nginx/nginx.conf //暂时不修改配置 3…

jsapi支付签名_微信支付小程序支付全流程

点击蓝色字关注我们&#xff01;一个努力中的公众号长的好看的人都关注了本文给大家讲解微信小程序支付全流程&#xff0c;以及相关功能源代码&#xff0c;项目不开放&#xff0c;带来不便尽请谅解。小程序支付主要包含如下几步骤&#xff0c;1.预下单-调用微信统一下单接口进行…

攻击防护手段_如何防护ddos流量攻击?

量攻击分很多种&#xff1a;我们常见的DDOS CC SYN UDP等&#xff0c;目前在网络中&#xff0c;流量攻击比较难解决&#xff0c;普通的IDC机房或是服务器商都是依靠硬防来解决&#xff0c;但是碰到大流量攻击&#xff0c;往往是拔线了事&#xff0c;所以都不是什么好办法&#…

Combox属性

ComboBox中DisplayMember和ValueMember有什么区别?ComboBox组件的数据绑定&#xff0c;在得到数据集后&#xff0c;只有设定好ComboBox组件的的三个属性就可以完成数据绑定了&#xff0c;这三个属性是&#xff1a;"DisplayMember"、 "ValueMember"、"…

MyBatis参数名称解析器-ParamNameResolver解析

ParamNameResolver ParamNameResolver是一个参数名解析器&#xff0c;负责把方法的参数按顺序解析出来并进行标注 主要用来处理接口形式的参数&#xff0c;最后会把参数处放在一个map中 map的key为参数的位置&#xff0c;value为参数的名字 package org.apache.ibatis.refle…

json 取值判断_【收藏级】.NETCore3.1中的Json互操作解读

本文将会全面介绍System.Text.Json 和 Newtonsoft.Json 的相同和异同之处&#xff0c;方便需要的同学做迁移使用&#xff0c;对未来&#xff0c;我们保持期待。文档比较几个重要的对象在 System.Text.Json 中&#xff0c;有几个重量级的对象&#xff0c;所有的JSON互操作&#…

使用wireshark抓包工具 检测不到本地网卡

wireshark 抓包工具无法检测到自身的网卡 下载wireshark 地址&#xff1a;https://www.wireshark.org/download.html安装&#xff0c;打开后发现没有windows 本身的网卡&#xff0c;查了一下&#xff0c;是Windows 本身抓包服务没有开启。打开Wireshark Legacy 在Start 下面没有…

学习Java的深拷贝和浅拷贝

关于Java的深拷贝和浅拷贝&#xff0c;简单来说就是创建一个和已知对象一模一样的对象。可能日常编码过程中用的不多&#xff0c;但是这是一个面试经常会问的问题&#xff0c;而且了解深拷贝和浅拷贝的原理&#xff0c;对于Java中的所谓值传递或者引用传递将会有更深的理解。 …

2017.3.22-morning

RIP是一种基于距离矢量的路由协议&#xff0c;以路由跳数作为计数单位的路由协议。适合用于比较小型的网络环境。 中文名路由信息协议 外文名 Routing Information Protocol 类 型 路由协议 计数单位 路由跳数[1] 英文原义&#xff1a;Routing Information Protocol 中文释…

转list_你知道Java数组转List的三种方式及对比吗?

前言&#xff1a;本文介绍Java中数组转为List三种情况的优劣对比&#xff0c;以及应用场景的对比&#xff0c;以及程序员常犯的类型转换错误原因解析。一.最常见方式(未必最佳)通过 Arrays.asList(strArray) 方式,将数组转换List后&#xff0c;不能对List增删&#xff0c;只能查…

Mybatis中的#号与$符号的区别

1、#{变量名}可以进行预编译、类型匹配等操作&#xff0c; 2、#{变量名}会转化为jdbc的类型。 3、${变量名}不进行数据类型匹配&#xff0c;直接替换。 4、#方式能够很大程度防止sql注入。 5、$方式无法方式sql注入。 6、$方式一般用于传入数据库对象&#xff0c;例如传入…

创建存储问题总结

创建存储过程时 1 drop procedure if exists pro_1; 2 delimiter // 3 create procedure pro_1( 4 5 ) 6 begin 7 8 end // 9 delimiter ; 发现这个问题时时因为看到输出的最后delimiter中有两个分号&#xff0c;所以怀疑这个地方语法存在问题 结尾的delimiter &#xff1b; …

js实现modbus_nodejs中使用modbus-serial库创建Modbus TCP读取设备的数据

nodejs中使用modbus-serial库创建Modbus TCP读取设备的数据在nodejs中安装modbus-serial库本人使用的开发环境是Windows10下的VSCode&#xff0c;安装并配置好了npm、node、cnpm等工具&#xff0c;使用cnpm安装了modbus-serial库&#xff0c;可以在npm中搜到modbus-serial包以及…

Windows如何安装MSMQ消息队列

1 打开控制面板&#xff0c;找到下图所示的服务器核心&#xff0c;然点击确定 2 等待安装完成 转载于:https://www.cnblogs.com/acetaohai123/p/6610302.html

讲字节数组转化为base64_Base64编码简介及简单实现

Base64编码是一种将字节数据编码为字符串的编码&#xff0c;字节数据会被编码成由64个可打印ASCII字符组成的字符串,这64个字符包括大写字母A-Z, 小写字母a-z, 以及数字 0 -9再加上 和 / &#xff0c;刚好64个字符。对应的字符表如下图&#xff1a;base64编码的一个用途就是对…

Mybatis返回Map

返回一条记录的map resultType“map“ key就是列名&#xff0c;值就是对应的值 多条记录封装成一个map Select返回类型中是返回Map时&#xff0c;是对方法中是否存在注解MapKey&#xff0c;这个注解我也是第一次看到&#xff0c;当时我也以为是纯粹的返回单个数据对象的Map…