java map key 大写转小写_Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的?(转)...

Java 是区分大小写的,普通的Map例如HashMap如果其中的key="ABC" value="XXX"

那么map.get("Abc") 或 map.get("abc")是获取不到值得。

但Spring中产生了一个忽略大小写的map使我产生了好奇

例如 jdbcTemplate.queryForList(sql)产生的 List

key="BID" value="STR1"

其中key都是大写的

但如果用

System.out.println("map.get(BILLIDS):" + map.get("BID") );

System.out.println("map.get(billids):" + map.get("bid") );

System.out.println("map.get(bIlLIds):" + map.get("bId") );

都可以查出=STR1

请问这是怎么做到的?

Spring用的是自己封装的Map:org.springframework.util.LinkedCaseInsensitiveMap,基于java.util.LinkedHashMap封装的。

LinkedCaseInsensitiveMap有一个成员变量Map caseInsensitiveKeys,小写后的Key与真实key的映射关系,get的时候先把你传入的key转小写得到真实的KEY,然后得到对应value,所以大小写不敏感了。

但其实key还保持本色的,所以如果序列化为json或者xml格式,key是大写,这是需要注意的。

public Object put(String key, Object value)

{

caseInsensitiveKeys.put(convertKey(key), key);

return super.put(key, value);

}

public Object get(Object key)

{

if(key instanceof String)

return super.get(caseInsensitiveKeys.get(convertKey((String)key)));

else

return null;

}

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

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

相关文章

《iOS 6核心开发手册(第4版)》——2.11节秘诀:构建星星滑块

本节书摘来自异步社区《iOS 6核心开发手册(第4版)》一书中的第2章,第2.11节秘诀:构建星星滑块,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看 2.11 秘诀:构建星星…

css框架和js框架_优雅设计的顶级CSS框架

css框架和js框架Brief discussion: 简要讨论: Well, who doesnt want their website or web page to look attractive, stylish and be responsive? 那么,谁不希望自己的网站或网页看起来有吸引力,时尚并且ReactSwift? We put …

软考下午题具体解释---数据流图设计

在历年的软考下午题其中,有五道大题。各自是数据流图的设计,数据库设计,uml图,算法和设计模式,从今天这篇博文開始,小编就跟大家来一起学习软考下午题的相关内容。包含理论上的知识以及典型例题的解说&…

基本程序 打印Scala的Hello World

Scala中的基本程序 (Basic program in Scala) As your first Scala program, we will see a basic output program that just prints "Hello World" or any other similar type of string. With this example, we will see what are the part of the code that is im…

java treemap lastkey_Java TreeMap lastKey()用法及代码示例

java.util.TreeMap.lastKey()用于检索Map中存在的最后一个或最高键。用法:tree_map.lastKey()参数:该方法不带任何参数。返回值:该方法返回映射中存在的最后一个键。异常:如果映射为空,则该方法将引发NoSuchElementException。以下…

mysql属于数据库三级模式_数据库系统的三级模式指的是什么

数据库系统的三级模式指的是什么发布时间:2020-10-26 10:11:21来源:亿速云阅读:52作者:小新小编给大家分享一下数据库系统的三级模式指的是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧&…

《自顶向下网络设计(第3版)》——导读

目录 第1部分 辨明客户的需求和目标 第1章 分析商业目标和制约 1.1 采用自顶向下的网络设计方法 1.2 分析商业目标 1.3 分析商业制约 1.4 商业目标检查表 1.5 小结 1.6 复习题 1.7 设计环境 第2章 分析技术目标与折衷措施 2.1 可扩展性 2.2 可用性 2.3 网络性能 2.4 安全性 2…

python矩阵变化_用numpy改变矩阵的形状

我的问题有两个方面。我有下面的代码来处理一些矩阵。在import numpytupleList [(0, 122), (1, 246), (2, 157), (3, 166), (4, 315), (5, 108), (6, 172), (7, 20), (8, 173), (9, 38), (10, 28), (11, 72), (12, 102), (13, 277), (14, 318), (15, 316), (16, 283), (17, 31…

最小硬币问题_进行更改的最小硬币数量

最小硬币问题Description: 描述: This is classic dynamic programming problem to find minimum number of coins to make a change. This problem has been featured in interview rounds of Amazon, Morgan Stanley, Paytm, Samsung etc. 这是经典的动态编程问题…

java 生成xml乱码_jdom解决中文乱码问题 JAVA生成xml文件帮了我很大的忙

决解了数据库读取出来 再保存到xml 产生的乱码问题import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import org.jdom.Attribute;import org.jdom.Document;import org.jdom.Element;import org.jdom.output.Format;import org.…

给定重量上限,背包问题_满足给定重量的袋子的最低成本

给定重量上限,背包问题Problem statement: 问题陈述: You are given a bag of size W kg and you are provided costs of packets different weights of oranges in array cost[] where cost[i] is basically cost of i kg packet of oranges. cost[i] -1 means t…

springMVC rest风格

1.dispatcherServlet的配置<!-- The front controller of this Spring Web application, responsible for handling all application requests --><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springfram…

sql2008能否打开mysql数据库_mysql数据库数据能不能导入到sql server中

点“测试”按钮确认你的链接是正确的。 Press the "Test" button to ensure your connection settings are set properly and then the "OK" button when youre done.二. 创建Microsoft SQL到MySQL的链接1.在SQL Server Management Studio中打开一个new qu…

c语言 函数的参数传递示例_isunordered()函数与C ++中的示例

c语言 函数的参数传递示例C isunordered()函数 (C isunordered() function) isunordered() function is a library function of cmath header, it is used to check whether the given values are unordered (if one or both values are Not-A-Number (NaN)), then they are u…

java进一_JAVA小白进:基础入门知识

1.注释&#xff0c;关键字&#xff0c;标识符1.注释(1)注释&#xff1a;解释说明程序的而文字。(2)注释的分类&#xff1a;单行注释 格式&#xff1a; //注释的文字多行注释 格式&#xff1a;/*注释的文字*/文档注释 格式&#xff1a;/**注释的文字*/(3)注释的作用&#xff1a;…

补丁(patch)的制作与应用

为什么80%的码农都做不了架构师&#xff1f;>>> 转自http://linux-wiki.cn/wiki/zh-hans/%E8%A1%A5%E4%B8%81(patch)%E7%9A%84%E5%88%B6%E4%BD%9C%E4%B8%8E%E5%BA%94%E7%94%A8 如果hack了开源代码&#xff0c;为了方便分享&#xff08;如提交Bug&#xff09;或自己…

php知识点汇总与解答_PHP操作员能力倾向问题与解答

php知识点汇总与解答This section contains Aptitude Questions and Answers on PHP Operators. 本节包含有关PHP运算符的 Aptitude问答。 1) Which of the following types of operators are used in PHP? Arithmetic OperatorsLogical OperatorsArray OperatorsString Oper…

csv导入mysql phpmyadmin_【转】从phpMyAdmin批量导入Excel内容到MySQL(亲测非常简洁有效)...

今天做项目遇到需要用phpMyAdmin批量导入Excel内容到MySQL数据库。分析了我的踏坑经历并且总结一最便捷的一套导入数据的方法&#xff0c;非常实用简洁&#xff1a;1、修改Excel表的数据&#xff0c;使得Excel中的字段与数据库字段要一一对应&#xff0c;并加上自增id。2、然后…

weakhashmap_Java WeakHashMap putAll()方法与示例

weakhashmapWeakHashMap类的putAll()方法 (WeakHashMap Class putAll() method) putAll() method is available in java.util package. putAll()方法在java.util包中可用。 putAll() method is used to copy all of the associations or mappings from the given map and assig…

c语言memcmp和java的_C语言memcmp()函数:比较m字节长的两个字符串s1和s2

函数名&#xff1a;memcmp头文件&#xff1a;函数原型&#xff1a; void* memcmp(void *s1,void *s2,unsigned m);功能&#xff1a;比较m字节长的两个字符串s1和s2参数&#xff1a; s1 和 s2 为要比较的字符串unsigned m 为要比较的前m个字节返回值&#xff1a;s1s1s2 返回等…