IBATIS - 从Spring向Oracle插入动态HashMap

时间:2012-09-24 15:19:11

标签: ibatis

有关此问题的一些背景知识。从前端,我有两个具有多个属性的选择框。一个框用于批准的项目,另一个框用于忽略的项目。我将这些放入Map中,其中键是公司的UID,值为“Y”或“N”,具体取决于UID所在的框。Inserting HashMap Values to a table using ibatis提供了一些帮助,但答案涉及手动放置条目,我在动态创建地图的地方,所以不确定键是什么。下面是Java的代码:

// Set up the map object for the back end
        Map<Integer, String> posMap = new HashMap<Integer, String>();
        // Get the approved mailers
        String[] mailerList = request.getParameterValues("approved");                   
        if (mailerList != null && mailerList.length > 0)
        {
            for(String mailer : mailerList)
            {
                posMap.put(Integer.parseInt(mailer), "Y");
            }
        }
        // reset the mailerList
        mailerList = null;
        // get the ignored mailers
        mailerList = request.getParameterValues("ignored");
        if (mailerList != null && mailerList.length > 0)
        {
            for(String mailer : mailerList)
            {
                posSampleMap.put(Integer.parseInt(mailer), "N");
            }
        }
        // only update POS if the map is not empty
        if(!posMap.isEmpty())
        {               
            updateMapper.updatePOSSampling(posMap);
        }

通常,我会在mapper.xml文件中有类似的内容:

<update id="updatePOSSampling" parameterType="hashmap">
   UPDATE <table_name>
   SET sampling_enabled = ${myMapValue}
   WHERE mailer_name = ${myMapKey}
</update>

在我提供的链接中,他们手动输入密钥和值,因此,示例IBATIS可以引用密钥。由于我不确定我的密钥是什么,生成此查询的最佳方法是什么?我有一个发送二维数组的临时解决方法,但我觉得使用Map DO会更好。在此先感谢您的任何帮助。

0 个答案:

没有答案