基于字符串数组长度的IBatis动态查询

时间:2013-05-29 22:47:25

标签: ibatis

我有一个DAO方法,它接受HashMap作为参数。

HashMap中的键是要搜索的列的名称。

String []包含要搜索的潜在值。

如果String数组的长度为1,则where子句与字符串数组中的确切值匹配。 如果String数组的长度为2,则where子句将查找字符串数组中两个值的所有值BETWEEN。

Ibatis似乎没有一种机制来确定sqlMap xml文件中数组的长度(因为数组的长度没有JavaBean getter / setter)。

ibatis是否可以有条件地检测字符串数组的长度并将查询调整为完全匹配或BETWEEN语句?

例如,如果密钥是年龄且值为18,则返回所有18岁的用户。但是,如果密钥是年龄且值为18和23,则返回18到23之间的所有用户。

isEqual标签最初看起来非常有前途,但它不适用于array.length,因为它没有getter / setter。 ibatis可以确定sqlMap中数组的长度吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我编写了一些java代码来将我的HashMap转换为List而不是String [],ibatis使用List.size方法工作得更好。