打印对象数组列表

Printing arrayList of objects

我正在使用 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

这个问题可能是什么原因造成的?

编辑:不要让我更新或使用其他依赖项,因为由于软件限制这是不可能的!

实际上你是对的,你的代码中只是有一个小错字。删除 <iterate> 语句中的 property="insert"

<select parameterClass="ArrayList">
    select * from something
    where str IN
    <iterate>
        #[].firstStr$, #[].secondStr#
    </iterate>
</select>