有关此问题的一些背景知识。从前端,我有两个具有多个属性的选择框。一个框用于批准的项目,另一个框用于忽略的项目。我将这些放入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会更好。在此先感谢您的任何帮助。