来自args的输入将为 a100 。我需要在属性文件中检查此值 a100 ,并获取查询select * from xyz
,这是另一个密钥的值。如何在一个密钥中检查值,并基于它如何获取另一个密钥的值?View1(A1000,A200,A300等到50视图)的多个值将只有一个查询select * from xyz
。
属性文件:
view1 = A1000,A200,A300
query1 = select * from xyz
view2 = B100,B200,B300
query2 = select * from abc
代码:
for(Object k:keys){
String key = (String)k;
String [] mapValue = Properties.getProperty(key).split(",");
List<String> lList=Arrays.asList(mapValue);
if(key.startsWith("view") &&(lList.contains(tmpSrc.getSourceTableForUpdate()))){
dest.seteQuery(Properties.getProperty("")); // here i need to get the query1 value.
}
}
请就此建议。
您有什么输入?我敢打赌您的输入是A1000
或B2341
。然后,此代码String [] mapValue = Properties.getProperty(key).split(",");
不正确,因为A1000
不是关键,而是值。如果是这种情况,最好的选择是从您的属性文件中预处理所有属性:
Map<String, String> queriesByKeys = new HashMap<>();
for (String key : props.keySet())
{
if (!key.startsWith("view"))
continue;
String queryKey = key.replace("view", "query");
String queryValue = props.getPropertyValue(queryKey);
String ids = props.getPropertyValue(key);
for (String id : ids.split(","))
queriesByKeys.put(id, queryValue);
}
然后您可以使用queriesByKeys
通过ID获取查询。