A TupleBackedMap cannot be modified Mybatis分页,使用List<Map>接参,无法修改map的解决方案
问题描述
当使用Mybatis 进行Page分页,再使用Page< map >作为接受参数。此时尝试修改map则会报错。
报错为
java.lang.UnsupportedOperationException: A TupleBackedMap cannot be modified
解决方案
使用新的数组,使用反射,构建工具类,自动将原值拷贝到对应的类上,完成转换。直接上代码
/*** 用于解决mybatis 查询List<map>后无法修改的问题* @author hh* @date 2023/8/3*/
public class MybatisMapUpdateUtils {public static void main(String[] args) throws Exception {Map<String,Object> map = new HashMap<>();map.put("userName","吉吉强");List<Map<String,Object>>list = new ArrayList<>();list.add(map);List<UserDto> object = (List<UserDto>) getObject(list, UserDto.class);System.out.println(object);}public static Object getObject(List<Map<String,Object>>map, Class className) throws Exception {List<Object> arrayList = new ArrayList<>();for (Map<String,Object> vo: map){Constructor constructors = className.getConstructor();Object instance = constructors.newInstance();for (String key:vo.keySet()){System.out.println("key= "+key+" and value= "+vo.get(key));try {Field field = className.getDeclaredField(key);field.setAccessible(true);field.set(instance,vo.get(key));} catch (Exception e){System.out.println("field not found");}}arrayList.add(instance);}return arrayList;}}
测试打印后,结果正常
key= userName and value= 吉吉强
[UserDto(userName=吉吉强)]进程已结束,退出代码0
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
A TupleBackedMap cannot be modified Mybatis分页,使用List<Map>接参,无法修改map的解决方案
问题描述 当使用Mybatis 进行Page分页,再使用Page< map >作为接受参数。此时尝试修改map则会报错。 报错为 java.lang.UnsupportedOperationException: A TupleBackedMap cannot be modified解决方案 使用新的数组,使用反射,构建工具…...
![](https://img-blog.csdnimg.cn/9b41a4c68ad842b682a0bc603a4dc42b.png)
Leetcode-每日一题【剑指 Offer 13. 机器人的运动范围】
题目 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例…...
![](https://img-blog.csdnimg.cn/c57ddc3bf8a04534ac21f121b5bf2d5f.png)
WEB集群——负载均衡集群
目录 一、 LVS-DR 群集。 1、LVS-DR工作原理 2、LVS-DR模式的特点 3、部署LVS-DR集群 3.1 配置负载调度器(192.168.186.100) 3.2 第一台web节点服务器(192.168.186.103) 3.3 第二台web节点服务器(192.168.186.…...
![](https://img-blog.csdnimg.cn/a1946f8723a04745aabdacc014354690.png)
ubuntu 20.0.4 搭建nvidia 显卡环境
一、安装docker 1、安装dokcer sudo apt install docker.io2、docker 添加到用户组 创建docker用户组 sudo groupadd docker添加当前用户加入docker用户组 sudo usermod -aG docker ${USER}重启docker服务 sudo systemctl restart docker切换或者退出当前账户再从新登入 …...
![](https://img-blog.csdnimg.cn/dba48936da934d9d8f9fe1478fbc35b5.png)
Windows环境下通过 系统定时 执行脚本方式 压缩并备份文件夹 到其他数据盘
环境配置 压缩时需要使用7-zip进行调用,因此根据自己电脑进行安装 官网:https://www.7-zip.org/ 脚本文件 新建记事本文件,重命名为git_back_up.bat echo off rem 设置utf-8可以正常显示中文 chcp 65001 > nulrem 获取当前日期和时间&…...
![](https://www.ngui.cc/images/no-images.jpg)
C++系列二:STL教程-常用算法
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 常用算法 前言算法列举:算法例子 前言 还有一些我在尝试中迷惑不解的,有点玄幻。 算法列举: 排序算法: sort(first, last);…...
![](https://img-blog.csdnimg.cn/183c1a182be442e2a46406b921758642.png)
【css】渐变
渐变是设置一种颜色或者多种颜色之间的过度变化。 两种渐变类型: 线性渐变(向下/向上/向左/向右/对角线) 径向渐变(由其中心定义) 1、线性渐变 语法:background-image: linear-gradient(direction, co…...
![](https://img-blog.csdnimg.cn/4d4f04c5cf8c4b58b81a2bc0b5d5c3b7.png)
idea打开多个项目需要开多个窗口(恢复询问弹窗)
【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】【创作不易,点个赞就是对我最大的支持】 前言 仅作为学习笔记,供大家参考 总结的不错的话,记得点赞收藏关注哦! 使用…...
![](https://www.ngui.cc/images/no-images.jpg)
篇十三:策略模式:选择不同算法
篇十三:“策略模式:选择不同算法” 设计模式是软件开发中的重要知识,策略模式(Strategy Pattern)是一种行为型设计模式,用于在运行时根据不同的需求选择不同的算法或行为。本文将探讨策略模式的作用和实现…...
![](https://img-blog.csdnimg.cn/22fe512ffcb340fc8a8cd7be1a0f0c89.png)
Centos7.6 安装mysql过程全记录
在centos 7.6上 离线安装mysql 的步骤,可参考下文: 一、查看当前MySQL的安装情况并卸载 1. 查看当前MySQL的安装情况 查找之前是否安装了MySQL rpm -qa|grep -i mysql 2.卸载mysql 如果已经安装mysql,则需要先停止MySQL,再删除…...
![](https://www.ngui.cc/images/no-images.jpg)
Java中的Guava是什么?
Java中的Guava是一个非常强大的Java库,它提供了很多实用的工具类和方法,可以帮助我们更高效地开发Java应用程序。从新手的角度来看,Guava可以让我们在Java编程中变得更加简单、快速和高效。 Guava的命名来源于“Google’s favorite Java lib…...
![](https://www.ngui.cc/images/no-images.jpg)
vue.js兄弟组件方法调用b组件调用a组件方法
vue.js 中兄弟组件方法调用 场景:父组件中同时引入两个子组件(A和B),此时B组件点击按钮需要调用A组件里面的方法 方案1:vue的事件总线 方案2:自定义事件($emit) 最终方案:…...
![](https://www.ngui.cc/images/no-images.jpg)
【Kubernetes】二进制搭建
目录 二进制搭建 Kubernetes v1.20 操作系统初始化配置 关闭防火墙 关闭selinux 关闭swap 根据规划设置主机名 在master添加hosts 调整内核参数 时间同步 部署 etcd 集群 准备签发证书环境 准备cfssl证书生成工具 生成Etcd证书 上传 etcd-cert.sh 和 etcd.sh 到 …...
![](https://img-blog.csdnimg.cn/d07d1578c5394d4b8298faf2c87fe922.png)
【MFC】08.MFC消息,自定义消息,常用控件(MFC菜单创建大总结),工具栏,状态栏-笔记
本专栏上几篇文章讲解了MFC几大机制,今天带领大家学习MFC自定义消息以及常用控件,最常用的控件请查看本专栏第一二篇文章,今天这篇文章介绍工具栏,菜单和状态栏,以及菜单创建大总结。 文章目录 MFC消息分类࿱…...
![](https://img-blog.csdnimg.cn/7c75bc3c1c5b438e9c39e310bf3bfe63.png)
Clickhouse 数据存储
一、数据分区 数据是以分区目录的形式组织的,每个分区独立分开存储.这种形式,查询数据时,可以有效的跳过无用的数据文件。 1.1 数据分区的规则 分区键的取值,生成分区ID,分区根据ID决定。根据分区键的数据类型不同&am…...
![](https://img-blog.csdnimg.cn/35ccfe352f6f4bd8aca33bef12f9e40d.png)
c语言每日一练(3)
前言:每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,暑假时三天之内必有一更,到了开学之后,将看学业情…...
![](https://www.ngui.cc/images/no-images.jpg)
java基础-Stream(流)、File(文件)和IO
Java中的流(Stream)提供了一个统一的接口来处理输入和输出数据,文件(File)提供了一种简单的方式来操作磁盘上的文件,而I/O则允许我们在Java程序中读写数据。 一、流Stream java中得stream是一种抽象概念,流可以从多种来源读取数据ÿ…...
![](https://img-blog.csdnimg.cn/73152f7b02cb4b8cb3a06c109adbb502.png)
el-table实现指定列合并
table传入span-method方法可以实现合并行或列,方法的参数是一个对象,里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。该函数可以返回一个包含两个元素的数组,第一个元素代表rowspan,第二个元素…...
![](https://img-blog.csdnimg.cn/4442a5c932904f238fb9de2467462764.png)
38.利用matlab解 有约束无约束的参数估计对比(matlab程序)
1.简述 1.离散型随机变量的极大似然估计法: (1) 似然函数 若X为离散型, 似然函数为 (2) 求似然函数L(θ)的最大值点 θ, 则θ就是未知参数的极大似然估计值. 2.连续型随机变量的极大似然估计法: (1) 似然函数 若 X 为连续型, 似然函数为 (2) 求似然函数L(θ)的最大值点θ, 则…...
![](https://img-blog.csdnimg.cn/img_convert/02804f5495e489f5bdcfaf7444ab2d2f.png)
什么是React?React与VU的优缺点有哪些?
什么是React?什么是VUE? 维基百科上的概念解释,Vue.js是一个用于创建用户界面的开源MVVM前端JavaScript框架,也是一个创建单页应用的Web应用框架。Vue.js由尤雨溪(Evan You)创建,由他和其他活跃…...
![](https://img-blog.csdnimg.cn/af4fb42df61f484b87ebaa91482edcf6.png)
区块链技术助力慈善,为您的善举赋予全新力量!
我们怀揣着一颗温暖的心,秉承着公开透明的理念,带着信任与责任,倾力打造了一套区块链技术驱动的去中心化捐赠与物资分发系统,通过智能生态网络(IEN)解决捐赠不透明问题的系统,让您的善举直接温暖…...
![](https://img-blog.csdnimg.cn/2a3c5e7cf5b046b683f1adf03894b108.png)
模拟实现消息队列项目(系列4) -- 服务器模块(内存管理)
目录 前言 1. 创建MemoryDataCenter 2. 封装Exchange 和 Queue方法 3. 封装Binding操作 4. 封装Message操作 4.1 封装消息中心集合messageMap 4.2 封装消息与队列的关系集合queueMessageMap的操作 5. 封装未确认消息集合waitMessage的操作 6. 从硬盘中恢复数据到内存中 7. Memo…...
![](https://img-blog.csdnimg.cn/1069e5d70fdd4c6f8780d363d8a7a3a1.png)
STM32 LoRa源码解读
目录结构: SX1278 |-- include | |-- fifo.h | |-- lora.h | |-- platform.h | |-- radio.h | |-- spi.h | |-- sx1276.h | |-- sx1276Fsk.h | |-- sx1276FskMisc.h | |-- sx1276Hal.h | |-- sx1276LoRa.h | -- sx1276LoRaMisc.h – src |-- fifo.c |-- lora.c |-- …...
![](https://www.ngui.cc/images/no-images.jpg)
【BASH】回顾与知识点梳理(十)
【BASH】回顾与知识点梳理 十 十. 文件的格式化与相关处理10.1 格式化打印: printf10.2 awk:好用的数据处理工具awk 的逻辑运算字符 10.3 文件比对工具diffcmppatch 10.4 文件打印准备: pr 该系列目录 --> 【BASH】回顾与知识点梳理&#…...
![](https://img-blog.csdnimg.cn/dc37326249bc488aabd74b9b45f7b57e.png)
【网络】应用层——HTTPS协议
🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言:你只管努力,剩下的交给时间! HTTPS协议 🍉HTTP的不安全性🍉认识HTTPS协议🍓加密解密ἵ…...
![](https://img-blog.csdnimg.cn/1f47e03579a64ccf9065d12d4e56c932.png)
Windows新版文件资源管理器经常在后台弹出的临时解决方案
禁用组策略自动刷新 运行gpedit.msc找到计算机配置->管理模板->系统->组策略找到 “关闭组策略的后台刷新”启用 参考 https://answers.microsoft.com/en-us/windows/forum/all/windows-11-most-recently-opened-explorer-window/26e097bd-1eba-4462-99bd-61597b5…...
![](https://img-blog.csdnimg.cn/7765de14db6e4064b76d6c4ab0d1e7e7.png#pic_center)
软考高项(八)项目整合管理 ★重点集萃★
👑 个人主页 👑 :😜😜😜Fish_Vast😜😜😜 🐝 个人格言 🐝 :🧐🧐🧐说到做到,言出必行&am…...
![](https://www.ngui.cc/images/no-images.jpg)
基于python+django开发的学生信息管理系统
基于pythondjangovue.js开发的学生信息管理系统,师弟的课程作业 功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。 功能包括:学生管理、班级管理、用户管理、日志管理、系统信息模块…...
![](https://img-blog.csdnimg.cn/a230d4ad2c65465e87f70e45fff3f566.png)
mysql的高级查询语句
目录 一、本文前言 二、高效查询方式 1)指定指字段进行查看 2)对字段进行去重查看 3)where条件查询 4)and 和 or 进行逻辑关系的增加 5)查询取值列表中的数据 6)between的引用 7)like…...
![](https://img-blog.csdnimg.cn/17d6bfea5dd04974bebcdd88be79903e.png)
04-8_Qt 5.9 C++开发指南_QTableWidget的使用
文章目录 1. QTableWidget概述2. 源码2.1 可视化UI设计2.2 程序框架2.3 qwintspindelegate.h2.4 qwintspindelegate.cpp2.5 mainwindow.h2.6 mainwindow.cpp 1. QTableWidget概述 QTableWidget是Qt中的表格组件类。在窗体上放置一个QTableWidget 组件后,可以在 PropertyEditor…...
![](/images/no-images.jpg)
怎样制作购物网站 微信转发/谷歌seo排名优化
如果车票开售的第一时间没有抢到票也不要着急,旅客还有5个“捡漏”机会: 1、开售30分钟后,如有旅客未及时付款,车票会重新返回系统发售。 2、开车前15天,是退票高峰期。 3、开车前48小时和24小时,系统会放出…...
![](https://img-blog.csdnimg.cn/2019030118575954.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAxMTQ4Mg==,size_16,color_FFFFFF,t_70)
小程序开发和app开发差别/seo教学培训
B- 树 B-树又名B树,我们把所有的数据进行折半块查找,比如一共100条数据。在30和60的地方分一下,存放30和60的节点就是根节点。30和60就是该节点的关键字,100也就是分成了3份,这个节点自动创建三个指针。这三份就是根节…...
![](https://img-blog.csdnimg.cn/562bd38e914e45c4bb3578f88c366457.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASGFvX0p1bkppZQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
高新技术企业网站怎么做/做推广的都是怎么推
一、定义: Java 语言提供了对象终止(finalization)机制来允许开发人员提供对象被销毁之前的自定义出来逻辑 二、执行时机: 当垃圾回收发现没有一个引用指向一个对象,即:垃圾回收此对象之前,总…...
![](/images/no-images.jpg)
贵阳个人做网站/网站建设平台官网
转自:https://blog.csdn.net/KYJL888/article/details/77846122 a) int a;表示一个内存空间,这个空间用来存放一个整数(int); b) int* a;表示一个内存空间,这个空间用来存放一个指针,这个指针指…...
![](/images/no-images.jpg)
wordpress 显示pdf/人工智能培训机构哪个好
上一期与大家探讨了做自媒体需要硬件与软件,今天接着和大家探讨做自媒体的心得二,做自媒体如何赚钱盈利,做自媒体该怎么样去做?从哪方面去做等问题。 怎么做自媒体,做自媒体如何赚钱盈利 一、是做图文自媒体 图文就是…...
![](https://img-blog.csdnimg.cn/img_convert/682f47036877cfcc1f01a3e026436efe.png)
做市级网站需要什么/百度风云榜
学校将对“学伴”项目进行全面评估,认真总结反思,不断改进工作,不负社会各界对山东大学的期望。全文569字,阅读约需要1分钟据山东大学官方微博消息,近日,网络中关于我校举办中外学生“学伴”项目的评论&…...