Mybatis框架:foreach循环遍历字段以及mybatis取值报错There is no getter for property named '__frch_item_0'问题的记录

STM32U575 ADC+DMA+UART数据采集实战:CubeMX配置避坑与代码实现 在嵌入式开发中,ADC采集与DMA传输是提升系统实时性的关键技术。通过DMA将ADC数据直接搬运到内存,可大幅降低CPU占用,实现高效连续采样。结合UART的DMA发送,能进一步解放CPU,适用于工业采集、信号监测等场景。本文以STM32U575为例,详解CubeMX中ADC、DMA、UART的配置要点,包括时钟树、DMAMUX映射、循环模式等,并给出代码实现与常见问题排查,帮助开发者快速构建稳定的数据采集链路。 阅读详情

估计这时候会有人想,查询动态字段返回值为tableName.*就可以了啊,的确,但是个人原因吧,不太喜欢用*来做为查询返回字段,而且用*会影响数据库查询性能。

因此才想到用foreach来循环遍历所需字段: 
foreach 基本语法:标签体内主要属性有item、index、collection、open、separator、close

item:集合中元素迭代时的别名
index:集合中元素迭代时的索引
open:表示以什么开始
separator:表示在每次进行迭代时的分隔符
close 常用语where语句中,表示以什么结束
在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,主要有一下3种情况:

如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在MyBatis里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key.
针对最后一条,我们来看一下官方说法:

注意 你可以将一个 List 实例或者数组作为参数对象传给 MyBatis,当你这么做的时候,MyBatis 会自动将它包装在一个 Map 中并以名称为键。List 实例将会以“list”作为键,而数组实例的键将是“array”。

报错解决:

【JAVA】 文件类型:mapper.xml 框架:MyBatis

控制台报错:

There is no getter for property named '__frch_item_0' in 'class [类名]'
1
错误写法:

<foreach collection="rightIds" index="index" item="item" open="("
    separator="," close=")">
    #{item}
</foreach>



正确写法:

<foreach collection="rightIds" index="index" item="item" open="("
    separator="," close=")">
    ${item}
</foreach>

或者

<foreach collection="rightIds" index="index" item="item" open="("
    separator="," close=")">
    #{rightIds[${index}]}
</foreach>


 

以下为示例:

示例(亲测):

serviceImpl层:


Dao层


Mapper映射文件 

需要注意:

foreach标签中遍历的内容,如果是用在列名的获取,要用${value}获取值,也就是直接去拼接,而不是预编译,否则会报错。用在条件遍历是预编译会更好一些(防止SQL注入),即#{value}。

参数为Map类型时,collection=”params.values”取的是值,而 
collection=”params.keys”取的是键。

不管是任何参数,@Param(“key”)注解的中key才是collection=”key”中取到的值(或者是键)。

以上是foreach基本用法介绍。

好了,基本用法已经掌握,这里有一个问题,就是当不确定哪张表,因此不确定有哪些字段,该怎么查询数据呢?

最初的想法是将所有columns参数和tableName参数都封装到一个Map中,这样在遍历的时候就会出现tableName也会出现在查询字段中,当然去判断应该也可以,只是还没去深究,有兴趣的同学可以研究一下。 
还有一个思路就是既然Mybatis会将所有传递的参数自动封装成Map,那么我将所有的columns参数手动封装,将tableName直接以String类型传递。 
上码:

service层 


Dao层 


Mapper映射文件 

需要注意

statementType=”STATEMENT” 这个参数,意思是非预编译的,用了这个参数就不可以使用#{value}取值,必须使用${value}
 

昇腾Ascend310b部署deepseek-r1-7b的学习记录 9.鲲鹏服务器+昇腾卡(Atlas 300I pro)搭建DeepSeek-R1-Distill-Qwen-7B(自己存档详细版)5.如何使用昇腾Ascend 300I Pro 310P芯片 单卡运行DeepSeek-R1-Distilled-Qwen-7B。6.鲲鹏服务器+昇腾卡(Atlas 300I pro)搭建DeepSeek-R1-Distill-Qwen-7B。7.鲲鹏+昇腾部署DeepSeek-R1-Distill-Qwen-32B+Open-webui。 阅读详情

相关推荐

W5500+STM32F103C8T6进行TCP通信(modbus)

一路生花一、w5500资料二、modbus通信三、从机代码四、总结五、参考 一、w5500资料 w5500的资料就放在下面了,单纯的客户端和其他模式上面有教程 https://www.aliyundrive.com/s/enPnnZgNtpE 二、modbus通信 Modbus RTU通信时使用的数据帧结构如下图,而Moubus TCP通信的数据帧和这个稍微不一样,没有crc检验,因为tcp本就是一种可靠传输协议 这里是Modbus TCP数据帧 公共功能码定义 三、从机代码

junseven164的博客 5778

Mybatis框架:foreach循环遍历字段(为了解决动态表、动态字段查询数据)

最近由于需求,需要前端传递动态表名,然后根据表名动态查询字段,然后对其数据进行处理,导入空间数据库。留下脚印,已做标记!估计这时候会有人想,查询动态字段返回值为tableName.*就可以了啊,的确,但是个人原因吧,不太喜欢用*来做为查询返回字段,而且用*会影响数据库查询性能。因此才想到用foreach来循环遍历所需字段: foreach 基本语法:标签体内主要属性有item、index、col

gcheng.Liu的博客 2万+

告别JTAG!用Artix-7和SPI Flash实现FPGA远程升级的保姆级教程

本文详细介绍了如何利用Artix-7 FPGA和SPI Flash实现FPGA远程升级(OTA)的完整方案。通过硬件连接、Vivado工程配置和STM32模拟更新等步骤,帮助开发者告别传统的JTAG烧录方式,实现高效、安全的远程固件更新,特别适用于嵌入式系统开发中的现场维护场景。

weixin_33964987的博客 364

There is no getter for property named ‘__frch_item_0‘ in ‘class

Mybatis foreach标签使用报错 debug源码解决前言解决■ 搜索报错原因■ 解析三种方式① #{}② '${}'③ #{list[${index}]}■ 自查报错原因■ debug源码① 查看抛错根源② 查看报错的是怎么获得value③ 查看hasAdditionalParameter的不同④ 解决⑤ 最后确认最后 前言 There is no getter for property named ‘__frch_ _0’ in 'class,好不容易将ssm改造成了springboot,发现不

bbq烤鸡的后宫 8983

手把手教你用Isaac Sim 8打造逼真光影效果:参数设置与场景应用

本文详细介绍了如何使用Isaac Sim 8打造逼真光影效果,涵盖基础参数设置、高级材质交互、专业级灯光造型技法以及复杂场景的灯光布局策略。通过实战案例和参数调优技巧,帮助用户提升虚拟场景的视觉表现,适用于数字孪生、虚拟仿真和影视特效等领域。

weixin_30836759的博客 80

Windows系统中 Xmanager 6 企业版下载安装激活教程

Xmanager 6 企业版安装激活教程 1.Xmanager 6 下载网址:https://yunpan.360.cn/surl_yrJrWq3GmjN 2. 双击 Xmanager-6.0.0169r 安装 3. 点击运行按钮 4. 点击下一步 5. 选择我接受许可证协议中的条款(A), 点击下一步。 6. 输入用户名:byg,公司名称:microsoft,序...

mry6的博客 9874

mybatis 数组报错 There is no getter for property named '__frch_item_0'

因为sql中要用到 in,查了一下才知道 查询中有用到in的一定要 用foreach才行,否则的话虽然不会报错但是一定查不出数据。 所以我就在bean里面定义了一个Priavte List  currUserStr; ...set..(自动生成的set get方法) ...get.. 但是发现在 select * from V_BZ_INFO  where  user_id in

zy_crazy_code的博客 1万+

多孔材料吸附性质模拟程序RASPA的离线和在线安装方法

RASPA-2.0是今年美国西北大学教授Randall Q. Snurr等人开发的针对于MC,MD,分子力学优化等用途的程序,相比于之前开发的MUSIC软件,RASPA的功能更加齐全,操作更加简便,可以在MC的吸附过程中考虑骨架的柔性,也可以想MUSIC一样先制作积分格点(music中的map)。 A、离线安装(centos为例): (1)、安装之前要检查一下是否装了automake,

youyno的博客 1万+

[Debug]There is no getter for property named '__frch_item_0' in

【JAVA】 文件类型:mapper.xml 框架:MyBatis 控制台报错:There is no getter for property named '__frch_item_0' in 'class [类名]'错误写法:<foreach collection="rightIds" index="index" item="item" open="(" separator=","

gajicat的专栏 1万+

ARTIX-7 GTP 3G-SDI 工程构建与调试实战

本文详细介绍了基于ARTIX-7 FPGA和GTP收发器的3G-SDI工程构建与调试实战。从基础概念解析到Vivado工程创建、GTP IP核配置、SDI IP核集成,再到系统集成与时钟域处理,提供了全面的技术指导。文章还分享了调试技巧、常见问题排查方法以及性能验证步骤,帮助开发者快速掌握3G-SDI视频传输技术的实现与优化。

weixin_30443813的博客 256

6、哈代空间、算子函数及相关概念解析

本文深入探讨了数学中哈代空间与算子函数的核心概念,包括强函数的因式分解、半单零点的定义与性质、Blaschke-Potapov乘积的存在性、Nagy-Foias模型算子的结构与谱分析、可数集合的相关性质(如Carlesonian集合、稀有集合等)、简单分式族的可分性与基性质,以及指数型整函数的增长特性。文章还分析了这些数学对象之间的内在联系,并通过图表与表格形式直观呈现了集合性质与函数空间结构的关系。这些理论不仅在数学分析和泛函分析中具有重要意义,也在信号处理、量子力学等应用领域具有广泛价值。

yhn4567890的博客 170

There is no getter for property named ‘__frch_item_0‘ in ...

记录一次mybatis使用中遇到的问题。在以前的使用中,某个功能之前一直是好好的,突然有一天,SQL出现There is no getter for property named ‘__frch_item_0‘。为什么同事那种写法会导致mybatis出现问题,还没有找到具体原因。

yu0217的博客 861

老版QQ原生表情gif动态

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

no getter for property named ' frch_item_0'的解决

问题描述 mybatis版本:v3.2.7 当批量分页查询数据,传入一个list参数时,通过mybatis的foreach语法处理, mybatis果断给你报错,十分任性! 代码: <foreach collection="projectIdList" item="item" open=...

chikou3083的博客 1283

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Mybatis 传入List类型参数,报错:There is no getter for property named '__frch_item_0' in

错误如下: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named '__frch_item_0' in 'class com.asiacloud....

weixin_34211761的博客 585

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

解决mybatis foreach 错误: Parameter '__frch_item_0' not found

解决mybatis foreach 错误: Parameter '__frch_item_0' not found 在遍历对象的属性(是ArrayList对象)时报错: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parame...

weixin_30364325的博客 409

mybatis foreach 出现 there is no getter for property named '__frch_item_0' in 'class

mybatis 循环字符串数组时,出现这个问题的时候,把foreach循环里的collection放到第一个位置上去, 然后把#改成$

qq_28101869的博客 2873

Mybatyis foreache 中的BUG

为什么80%的码农都做不了架构师?>>> ...

weixin_33896726的博客 350

问题:mybatis_no getter for property named '__frch___frch___frch_item_0Dim_1Value_2

使用mybatis遇到的问题 使用foreach 进行多层嵌套循环的时候, 发生如下错误 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named '__f...

liby的博客 616

mybatis中foreach报错_frch_item_0 not found

_frch_item_0 not found There is no getter for property named 'states' in 'class com.xingguo.model.User' mybatis动态sqlforeach

兴国-为梦想而战 6407

org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ‘__frch_item

mybatis在使用foreach遍历的时候的时候报错。 __frch_item_0 什么错误的时候 我之前有遇到过。但是我每次解决的方案不同 1.foreach遍历里面加一个'#{item}'  2.foreach里面的collection里面的名称,然后 #{unitlist[${index}]} ${index}是下标 这种其实是按照下标遍历的这种。

rendeyishi的专栏 1008

mapper foreach循环报错 there is no getter for property named ‘item‘

Mybatis框架用foreach来循环遍历所需字段: foreach 基本语法:标签体内主要属性有item、index、collection、open、separator、close item:集合中元素迭代时的别名 index:集合中元素迭代时的索引 open:表示以什么开始 separator:表示在每次进行迭代时的分隔符 close 常用语where语句中,表示以什么结束 <select id="getUserInfo" parameterType="hashmap" resultType="

weixin_42933886的博客 1714

There is no getter for property named 'items'

由于自己的ItemsQueryVo里面包含有属性ItemsCustom,并且ItemsCustom继承了Items,所以在我的Mapper下的 ItemsMapper.xml中的Sql语句中: 红色的标准处就不能写items.name,由于ItemsCustom只是ItemsQueryVo里面的属性,ItemsCustom也只是继承了 Items,所以不能够直接使用itemsQueryV

zhurenzhen的博客 868

mysql for循环动态字段名_foreach属性-动态-mybatis中使用map类型参数,其中key为列名,value为列值...

最近有个需求,就是使用mybatis时,向mysql中插入数据,其参数为map类型,map里面的key为列名,而key对应的value是该列对应的列值;问题是每次插入mysql中数据行的部分列,即map里面key的值每次都不固定,在用mybatis时需要通过map的key作为列名。基础知识对于这类问题基本思路就是用foreach标签遍历map,因此需要看看foreach的知识。foreach属性属...

weixin_42509894的博客 1209

there is no getter for property named解决方案

这个问题也是我昨天遇到的。 看问题描述我还以为是我VO对象(实体类)里面的没有对应的getter方法。一直检查将getter方法。检查半天也没找到原因。 后面去网上找,也没找到好的解决方案(我有看到相关的解决方案,然而觉得那些解决方案不够优雅。就没有去尝试) 问题的原因是什么?确实是实体类没有对应的get方法 上面这个是我修复了问题的示范。 我开始是 test = “city ==‘dl’” 因为我数据库表的字段叫city,但是我实体类里面的属性名字是cityEn。 如果我写city,属性里面确实没 ge

五更依旧朝花落的博客 9万+

Mybatis foreach异常Parameter '__frch_item_0' not found. Available parameters are [list]

在mybatis用到foreach的时候,使用方式不正确会报这个错误:Parameter ‘__frch_item_0’ not found. Available parameters are [list]。但是错误提示不够明确,所以有时候比较难找到根源,有以下几种查找问题和解决问题思路。

fengyuxili的博客 1303

使用MyBatis数组参数出现异常There is no getter for property named '__frch_customId_0'

实体中数组字段作为参数时,出现异常There is no getter for property named '__frch_customId_0' in 'class com.llg.modules.rpt.entity.day.RptEvDay'

wangpf2011的博客 3893
上一篇: ehcache配置:使用Spring+SpringMVC+Mybatis或者有shiro
下一篇: Java实现HttpClient发送GET、POST请求(https、http)
sdx1237
博客等级 码龄11年 24粉丝 42原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值