JavaSpring的存储过程,解析结果映射
我已经用Spring&;在MySQL上休眠。 我想调用一个MySQL存储过程。 该过程接受2个浮点参数,并返回一个包含3个字段的结果集。整数,整数,浮点
我创建了一个扩展spring的StoredProcess的类。 这是执行函数:
public Map execute(float longitude, float latiude) {
Map inparams = new HashMap(2);
inparams.put("longitude", (float) longitude);
inparams.put("latitude", (float) latiude);
Map out = execute(inparams);
问题是我不知道如何解析映射结果。 当我调试时,我看到所有的结果集都在那里,但是它以一种奇怪的方式排列,我不知道如何提取字段
为了向您展示它的外观,我所能做的就是为您提供out(Map)的toString() 这是:
{#result-set-1=[{id=4, out1=100, distance=40.9}, {id=5, out1=100, distance=47.7}, {id=6, out1=100, distance=22.3}, {id=7, out1=100, distance=27.4}, {id=8, out1=100, distance=22.1}, {id=9, out1=100, distance=18.3}, {id=10, out1=100, distance=20.1}, {id=11, out1=100, distance=28.6}, {id=12, out1=100, distance=23.1}], #update-count-1=0}
# 1 楼答案
因为您使用的是Spring,所以可以使用Jackson ObjectMapper。 这比第一个答案更简单
我希望,即使这个问题存在很长时间,这也会有所帮助:)
# 2 楼答案
我会在调试器中查看类型是什么;IntelliJ可以很容易地告诉我
在我看来,它像一个
Map<String, Object>
。键是“#结果集-1”和“#更新计数-1”第一个键的值是一个映射列表,每返回一行一个映射。键是列名,值是返回值
第二个键的值是一个整数;它是零,因为你做了选择
因此,为了解释清楚,下面是如何提取结果(对于最初的编码错误,很抱歉):