【MyBatis】获取参数值的方式

基于WEKWS模型的语音唤醒关键词识别 本文所使用的模型网络结构继承自论文《Compact Feedforward Sequential Memory Networks for Small-footprint Keyword Spotting》,文中研究了将低秩矩阵分解与传统FSMN相结合的紧凑型前馈顺序记忆网络(cFSMN)用于远场关键字检测任务。 阅读详情

 🍓个人主页:个人主页

🍒系列专栏:SSM框架

目录

1.单个字面量类型的参数

 2.多个字面量类型的参数

3.map集合类型的参数

4.实体类类型的参数

5.使用@Param标识参数


MyBatis获取参数值的两种方式: ${}和#{}
${}的本质就是字符串拼接,#{}的本质就是占位符赋值
${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;
但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时, 可以自动添加单引号

1.单个字面量类型的参数

若mapper接口中的方法参数为单个的字面量类型 ,此时可以使用${}和#{}以任意的名称获取参数的值, 注意${}需要手动加单引号

#{}方式

测试类:
public class MybatisTest {
    @Test
    public void test() {
        SqlSessionUtils sqlSessionUtils = new SqlSessionUtils();
        SqlSession sqlSession = sqlSessionUtils.getSqlSession();


    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        User user = userMapper.getUserByUsername("root");
        System.out.println(user);


    }

}
SQL:
  </select>
    <select id="getUserByUsername" resultType="User">
        select * from t_user where username=#{username}
    </select>

数据库中的信息:

查询结果:

 ${}方式

错误示范:

 <select id="getUserByUsername" resultType="User">
        select * from t_user where username=${username}
    </select>

运行结果: 

 root 是字符类型 少了单引号,所以查询不到。所以我们 应该在此字符两边添加单引号:

正确示范:

    <select id="getUserByUsername" resultType="User">
        select * from t_user where username='${username}'
    </select>

 2.多个字面量类型的参数

若mapper接口中的方法参数为多个时
此时MyBatis会自动将这些参数放在一个map集合中,以arg0,arg1...为键,以参数为值;以
param1,param2...为键,以参数为值;
因此只需要通过${}和#{}访问map集合的键就可以获取相对应的值, 注意${}需要手动加单引号

接口:

public interface UserMapper {


    User checkLogin(String username,String password);

}

测试类:

public class MybatisTest {
    @Test
    public void test() {
        SqlSessionUtils sqlSessionUtils = new SqlSessionUtils();
        SqlSession sqlSession = sqlSessionUtils.getSqlSession();


    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        User user = userMapper.checkLogin("张三", "123");
        System.out.println(user);


    }

}

UserMapper.xml:(错误示范)

    <select id="checkLogin" resultType="User">
        select * from t_user where username=#{username} and password=#{password};

    </select>

 Error querying database. Cause: org.apache.ibatis.binding.BindingException: Parameter 'username' not found. Available parameters are [arg1, arg0, param1, param2]

翻译:

查询数据库时出错。原因:org.apache.ibatis.binding。绑定异常:未找到参数“用户名”。可用参数为[arg1、arg0、第1段、第2段]

UserMapper.xml:(换为这个)

    <select id="checkLogin" resultType="User">
        select * from t_user where username=#{arg0} and password=#{arg1};

    </select>

 数据库中的表:

 运行结果:

3.map集合类型的参数

若mapper接口中的方法需要的参数为多个时,此时可以手动创建map集合,将这些数据放在
map中 只需要通过${}和#{}访问map集合的键就可以获取相对应的值,注意${}需要手动加单引号

接口:

public interface UserMapper {


    User checkLoginByMap(Map<String,Object> map);


}

测试类:

public class MybatisTest {
    @Test
    public void test() {
        SqlSessionUtils sqlSessionUtils = new SqlSessionUtils();
        SqlSession sqlSession = sqlSessionUtils.getSqlSession();


    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        HashMap<String, Object> map = new HashMap<>();
        map.put("username","张三");
        map.put("password","123");

        User user = userMapper.checkLoginByMap(map);
        System.out.println(user);


    }

}

UserMapper.xml:

    <select id="checkLoginByMap" resultType="com.atguigu.mybatis.pojo.User">

select * from t_user where username='${username} 'and password='${password}';
    </select>

4.实体类类型的参数

若mapper接口中的方法参数为实体类对象时
此时可以使用${}和#{},通过访问实体类对象中的属性名获取属性值,注意${}需要手动加单引号

接口:

public interface UserMapper {


    int insertUser(User user);


}

 测试类:

public class MybatisTest {
    @Test
    public void test() {
        SqlSessionUtils sqlSessionUtils = new SqlSessionUtils();
        SqlSession sqlSession = sqlSessionUtils.getSqlSession();
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        User user = new User(null, "小王", "789123", 28, "女", "9090889@qq.com");
        int i = userMapper.insertUser(user);

    }

}

UserMapper.xml:

 <insert id="insertUser">
        insert into t_user values(null,#{username},#{password},#{age},#{sex},#{email})
    </insert>

 

5.使用@Param标识参数

可以通过@Param注解标识mapper接口中的方法参数
此时,会将这些参数放在map集合中,以@Param注解的value属性值为键,以参数为值;以
param1,param2...为键,以参数为值;只需要通过${}和#{}访问map集合的键就可以获取相对应的值, 注意${}需要手动加单引号

 之前的:

User checkLogin(String username,String password);

 通过@Param注解标识:

User checkLogin(@Param("username") String username, @Param("password") String password);

 测试类:

public class MybatisTest {
    @Test
    public void test() {
        SqlSessionUtils sqlSessionUtils = new SqlSessionUtils();
        SqlSession sqlSession = sqlSessionUtils.getSqlSession();
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        User user = userMapper.checkLogin("小王", "789123");
        System.out.println(user);
    }

}

UserMapper.xml:

    <select id="checkLogin" resultType="User">
        select * from t_user where username='${username} 'and password='${password}';

    </select>

表:

运行结果: 

MBIST --- PATR1.Memorybist测试原理 mem bist作为现在design设计中不可或缺的DFT设计内容,越发重要。本章节主要介绍mem bist组成部分,测试的原理以及注意事项。 阅读详情

相关推荐

【理论&实战篇】大模型RAG技术详解(一)-基础篇

RAG的初衷是为了增强大模型的事实性、时效性,减少幻觉,引入专业知识优化生成回复,是一种结合了信息检索技术与语言生成模型的人工智能技术。通过,并将其作为提示(Prompt)输入给大模型(LLM),来。

qq_41375680的博客 374

myBatis如何取Map里的值

mapper层传递参数map 使用foreach同时取key和value ,key放到index属性中,value放到item中取key的时候使用 $ !!!

m0_71851186的博客 2053

单细胞分析避坑指南:你的Harmony批次矫正真的做对了吗?

本文深入探讨了单细胞转录组分析中Harmony批次矫正的正确使用方法,解析了其工作原理及常见误区。通过详细参数调优指南和实战案例,帮助研究者避免过度矫正,确保生物学信号的有效保留。特别关注Harmony在单细胞数据分析中的关键参数设置和结果验证方法。

weixin_31099291的博客 299

java-mybatis-自定义interceptor拦截器-获取原生sql补全公共参数

环境 pgsql + jdk1.8 + mybatis + springboot。

草青工作室 的专栏 4244

智能驾驶感知模块评测实战:如何用回灌测试提升BEV模型准确率(附数据集处理技巧)

本文深入探讨了如何通过诊断型回灌测试系统性地提升智能驾驶BEV感知模型的准确率与鲁棒性。文章详细拆解了从场景切片、时空对齐到多维指标分析的完整评测流水线,并针对BEV模型特有的深度估计、特征融合等环节提供了优化思路,旨在帮助工程师将海量路采数据转化为精准的模型迭代燃料。

weixin_29045585的博客 395

STM32CubeMX | HAL库实战:ADC多通道采集模式深度解析(轮询、DMA、TIM触发)

本文深度解析了基于STM32CubeMX与HAL库实现ADC多通道数据采集的三种核心模式:轮询、DMA以及TIM触发DMA。文章通过对比分析,详细阐述了各模式的配置要点、适用场景与潜在陷阱,旨在帮助开发者根据实时性、CPU占用及采样精度等需求,选择并实现高效稳定的多通道数据采集方案。

postgres8guard的博客 971

mybatis获取map值的问题

Parameter 'deviceTypeId' not found. Available parameters are [map, param1]

qq_44392492的博客 4399

【论文分享】【Agent】ProAgent: Building Proactive Cooperative Agents with Large Language Models

多智能体系统是由多个智能体组成的集合,这些智能体可以是软件程序、机器人、传感器或其他实体,它们各自具备一定的智能和自主性,并通过交互协作来实现单个智能体难以完成的复杂目标。

nanxun___的博客 1122

MyBatis获取参数值的两种方式(重点)

MyBatis获取参数值的两种方式(重点)

H_158833154的博客 1738

在 MATLAB/Simulink 中构建一个卫星间激光通信链路的完整仿真系统

摘要: 本文通过Simulink详细演示了卫星间激光通信系统的建模过程,重点分析其在10Gbps高速率、2000km距离下的性能。系统设计涵盖PAM-4调制、自由空间信道建模(路径损耗、指向误差、多普勒效应)、APD探测及链路预算计算,并给出典型场景下18.5dB SNR、1e-9误码率的仿真结果。针对激光通信的μrad级指向精度挑战,提出AI辅助跟踪、混合RF/激光等优化策略,为未来太空高速组网提供可扩展的仿真框架。所需工具箱包括Communications Toolbox和Aerospace Toolb

xiaoheshang_123的博客 382

基于MATLAB的井筒多相流模拟

井筒多相流的模拟可以基于不同的数学模型和计算方法。其中,最常用的模型之一是多相流模型,它基于质量守恒、动量守恒和能量守恒等原理,描述了流体在井筒中的流动行为。对于井筒多相流的模拟和分析可以帮助我们理解和优化油气田开发过程中的流体行为,从而提高产量和效率。在本文中,我们将介绍如何使用MATLAB进行井筒多相流的模拟,并提供相应的源代码。需要注意的是,以上示例是一个简化的模拟,仅用于演示如何使用MATLAB进行井筒多相流模拟。实际应用中,我们需要考虑更多的物理过程和参数,并使用更复杂的数值方法和模型进行模拟。

AtdiHtml的博客 706

详细介绍Mybatis获取参数值的五种方法

详细介绍Mybatis获取参数值的五种方法

程序小白的博客 3687

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Mybatis-获取参数值的两种方式

MyBatis获取参数值的两种方式:${ } 和 #{ }

sakurapaid的博客 2002

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IDEA的使用指南

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

MyBatis 获取参数值的两种方式

MyBatis 获取参数值的两种方式相关笔记

后端小白个人学习记录 1298

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

四、MyBatis获取参数值的两种方式

①以@Param注解的value属性值为键,参数值为值。2.通过#{}或${}访问map集合的键可以获取对应的值。②在 ParameterMapper.xml配置类。②在 ParameterMapper.xml配置类。②在 ParameterMapper.xml配置类。②在 ParameterMapper.xml配置类。①在ParameterMapper接口中。①在ParameterMapper接口中。①在ParameterMapper接口中。①在ParameterMapper接口中。

jbkjhji的博客 1071

MyBatis获取参数值的两种方式

mybatis获取参数值的两种方式以及用法和注意事项

qq_55851764的博客 331

五、MyBatis获取参数值的两种方式(重点)

{}的本质就是字符串拼接,#{}的本质就是占位符赋值${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引 号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号。

小薛博客-助力人人成为架构师 1562

mybatis配置文件详解及获取参数值的方式

mybatis配置文件及获取参数值的方式

PiggyOne123的博客 1183

四、MyBatis获取参数值的两种方式(重点)

四、MyBatis获取参数值的两种方式(重点)

刘大猫 1143

MyBatis - 06 - MyBatis获取参数值的两种方式(重要)

1、回顾JDBC原生的获取参数值的方式 2、MyBatis获取参数值的两种方式 3、MyBatis获取参数值的五种情况 4、@Param源码分析

qq_39413850的博客 956

Mybatis获取参数值的方式

Mybatis获取参数值的两种方式,获取参数值的各种情况

m0_56486757的博客 528

MyBatis学习笔记(五) —— MyBatis获取参数值的两种方式

MyBatis获取参数值的两种方式:${} 和 #{} 。 MyBatis获取参数值的5种情况。

程序猿杰哥的博客 1493

三、Mybatis-获取参数值的两种方式

{}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号。mapper接口方法的参数为多个时。单个字面量时,sql语句的#{}里面的内容,与函数参数名无关,可以随便命名。但是还是建议见名知意。因此只需要通过#{}和${} 以键的方式访问值即可,但是需要注意${}的单引号问题。只需要通过#{}和${}以属性的方式访问属性值即可,但是需要注意${}的单引号问题。

ccb1372098的博客 511
上一篇: 【JAVA基础—刷题(1)】基础语法 运算符
下一篇: 【MyBatis】各种查询功能
热爱编程的小白白
热爱编程的小白白 新星计划导师 新星计划导师
博客等级 码龄5年 11万+粉丝 243原创
评论 86
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱编程的小白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值