1.先说Spring JdbcTemplate查询返回的Map
在使用Spring提供的JdbcTemplate类对数据库进行操作的时候,直接使用如下所示的系列重载方法需要特别注意返回的Map类型。
org.springframework.jdbc.core.JdbcTemplate
JdbcTemplate在处理查询结果包装成Map的时候使用了自己定义的Map,该Map继承自LinkedHashMap,且其key值的大小写不区分。
该Map是org.springframework.util.LinkedCaseInsensitiveMap,其内部用一个Map来维护key的映射关系:小写key-原始key,而LinkedCaseInsensitiveMap本身的映射关系仍然是:原始key-元素。这样在处理添加,删除,获取的时候就可以实现忽略key的大小写。
例如获取指定key映射的元素:
那么在实际开发中使用JdbcTemplate对象查询后获得Map,然后获取指定key(数据库字段名)的值时下面所示获取同样的结果。
2.接下来说数据库对查询字段名的处理(字段名的大小写问题)
Postgresql:
由于Postgresql是大小写敏感,对数据库中的对象名称默认采用小写,查询字段名统一处理为小写,而SQL是不区分大小写。
如果要在Postgresql中使得查询字段名大小写敏感需要用双引号("")引住,数据库中的对象名同理。
如果要在Postgresql中使用字符串常量,则需要用单引号('')引住。
!!Postgresql数据库使用需要格外注意命名。
MySQL:
Lin