- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在学习 Spring Core 认证,我对 JdbcTemplate use 的使用有一些疑问。
我知道 JdbcTemplate 为我提供了不同的方法来执行查询(用 SQL 编写)。
所以我有以下方法:
1) queryForObject():
public long getPersonCount() {
String sql = “select count(*) from PERSON”;
return jdbcTemplate.queryForObject(sql, Long.class);
}
所以在这个方法中我指定了2个参数,分别代表SQL语句和返回对象的类类型。在前面的例子中,指定查询结果返回到一个 Long 对象中。
如果查询返回的结果与指定的类型不匹配会怎样? (例如,如果查询返回一个 String 并且我指定了一个 Long 作为 queryForObject() 方法的参数?如何处理这种情况?
2) queryForMap():
public Map getPersonInfo(int id) {
String sql = “select * from PERSON where id=?”;
return jdbcTemplate.queryForMap(sql, id);
}
在我看来,阅读文档似乎只有在知道我的查询返回单行时才使用它。是否正确?
所以现在我对 queryForMap() 方法的使用有疑问。
我知道 Map 接口(interface)使用 系统存储对象。
所以一个Map被认为可以存储多个对。所以我认为这可以存储多行:Map 的键是我表中一行的键,值包含其他列的值(到一个对象中)。
但是queryForMap() 方法的逻辑似乎很不一样。它具体是如何工作的?
也许它返回一个以这种方式工作的 map :
key:包含表的主键的键,并且与此键相关联的多个值与我的表的其他字段的内容相关。或者什么?
3) queryForList():
public List getAllPersonInfo() {
String sql = “select * from PERSON”;
return jdbcTemplate.queryForList(sql);
}
在我看来,阅读文档时我希望我的查询返回多行时使用它。在我看来,方法输出是一个 Map 列表(因此根据之前的方法,每个 Map 代表一个返回的行**(但之前对如何将行存储到 map 仍然存在)。
你能帮我深入理解这些方法到底是如何工作的吗?
谢谢
最佳答案
关于java - Spring JdbcTemplate 提供的 queryForMap() 和 queryForList() 方法在内部究竟是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27471993/
Feel free to skip straight to TL/DR if you're not interested in details of the question 简短的序言: 我最近决定
我一直在阅读 A Tour of Go学习Go-Lang到目前为止一切顺利。 我目前在 Struct Fields类(class),这是右侧的示例代码: package main import "fm
Last time I got confused顺便说一下PowerShell急切地展开集合,基思总结了它的启发式如下: Putting the results (an array) within a
我是一名优秀的程序员,十分优秀!