属性文件键值 - 根据一个键的值获取另一个键的值



来自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.
    }
}

请就此建议。

您有什么输入?我敢打赌您的输入是A1000B2341。然后,此代码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获取查询。

最新更新