我正在使用 Ibatis 2,我问如何打印对象数组(因为官方文档已经消失了)。这是与我的数据类似的示例数据:
[
{
"firstStr": "D392",
"secondStr": "N3895"
},
{
"firstStr": "D624",
"secondStr": "M2435"
},
{
"firstStr": "T4543",
"secondStr": "K9345"
}
]
该数据定义为ArrayList
。数组内的对象定义为 Map
:
Map<String,String> data = new HashMap();
data.put("firstStr","D392");
data.put("secondStr","N3895");
...
ArrayList<Map> insert = new ArrayList<Map>();
insert.add(data);
我需要使用<iterate>
在sql模板中映射这些数据(因为在我的版本中 foreach 不可用)。我目前拥有的:
<select parameterClass="ArrayList">
select * from something
where str IN
<iterate property="insert">
#[].firstStr$, #[].secondStr#
</iterate>
</select>
我收到以下错误:
String index out of range: -1
导致此问题的原因是什么?
编辑:不要要求我更新或使用其他依赖项,因为由于软件限制这是不可能的!
最佳答案
实际上你是对的,你只是代码中有一个小错字。删除property="insert"
在你的<iterate>
声明:
<select parameterClass="ArrayList">
select * from something
where str IN
<iterate>
#[].firstStr$, #[].secondStr#
</iterate>
</select>
关于java - 打印对象的数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56888724/