打印数组对象列表

时间:2019-07-04 13:11:11

标签: java arraylist ibatis

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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