关于这个问题的一些背景。从前端,我有两个带有多个属性的选择框。一个盒子是用于批准的项目,另一个是用于忽略的项目。我将它们放入 Map 中,键是公司的 UID,值是“Y”或“N”,具体取决于 UID 所在的框。使用 ibatis 将 HashMap 值插入表提供了一些帮助,但答案涉及手动放置条目,因为我正在动态创建地图,所以不确定键是什么。下面是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 会是更好的方法。提前感谢您的任何帮助。