在执行SimpleJdbcCall时,我得到两个参数#result-set-1,#update-count-1
MapSqlParameterSource parameterSource = new MapSqlParameterSource();
parameterSource.addValue("name", "something");
Map<String, Object> resultFromProcedure = cstmt.execute(parameterSource);
#result-set-1有变量
[{
id = 123,
name = "something",
accountnumber = 123456,
balance = 789999
}]
一切都很好直到我试图进入
resultFromProcedure.get("accountnumber")
结果为null。问题是如何访问#result-set-1中的值
3条答案
按热度按时间bxgwgixi1#
如果我理解正确的话;
Map<String, Object> resultFromProcedure
由两个条目组成,分别具有密钥#result-set-1
和#update-count-1
。#result-set-1
的对象是一个有4个成员变量的对象。(如果是String,则需要将Json转换为Java Object(Example))因此,您对
resultFromProcedure.get("accountnumber")
的调用试图使用键accountnumber
获取对象,但map不包含该键。你需要先获取#result-set-1
的对象,例如:然后你可以打电话
kzmpq1sx2#
由于可能有多个结果集,SimpleJdbcCall返回另一个Map中的arraylist中的对象,标记为“#result-set-1”。要访问其中的值,请尝试以下操作:
y53ybaqx3#
下面是一个针对“#result-set-1”的Rowmapper解决方案