Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Oracle查询作为Hasmap返回<;字符串,字符串>;_Java_Spring_Spring Boot - Fatal编程技术网

Java Oracle查询作为Hasmap返回<;字符串,字符串>;

Java Oracle查询作为Hasmap返回<;字符串,字符串>;,java,spring,spring-boot,Java,Spring,Spring Boot,我正在对Oracle数据库进行此查询从T109 T109中选择T109.DISTRITO,其中DISTRITO列有许多数字。我想把所有这些数字放在一个端点上,所以当他们使用它时,会以Hashmap或Hasmap等格式显示这些信息。。。但始终是Hashmap。我怎么做?请忽略西班牙语单词,我知道我们必须始终使用英语编码,但这是继承的代码。这是我试过的 代码 private final String CONSULTA_SOLO_发行版= “选择T109.DISTRITO\n” +“从T109 T10

我正在对Oracle数据库进行此查询
从T109 T109
中选择T109.DISTRITO,其中DISTRITO列有许多数字。我想把所有这些数字放在一个端点上,所以当他们使用它时,会以Hashmap或Hasmap等格式显示这些信息。。。但始终是Hashmap。我怎么做?请忽略西班牙语单词,我知道我们必须始终使用英语编码,但这是继承的代码。这是我试过的

代码

private final String CONSULTA_SOLO_发行版=
“选择T109.DISTRITO\n”
+“从T109 T109\n”;
公共HashMap getOnlyDistritoTarificacion(字符串编号){
列表filas_distritos=null;
HashMap distrito=新的HashMap();
filas_distritos=jdbcTemplate.queryForList(CONSULTA_SOLO_distritos,新对象[]{numero,numero});
if((filas_distritos!=null)&(!filas_distritos.isEmpty())| |(filas_distritos.size()!=0)){
Map row=filas_distritos.get(0);
distrito.put(“distrito”,(String)row.get(“distrito”);
发布日期(“mensaje”、“El nú;mero consultado”(“+numero+”)与发布日期相关;
}否则{
发布公告(“mensaje”、“El nú;mero consultado”(“+numero+”)与发布公告无关;
}
返回分布;
}

我不确定我是否做对了,所以如果这是错误的,请原谅我,我只是想帮你

我认为您的代码的问题在于,您继续使用来自查询结果集的每个数字设置相同的映射键distrito

相反,您应该在一个列表对象中收集您的值,当您拥有所有这些值时,将该值设置为地图

public HashMap<String, String> getOnlyDistritoTarificacion(String numero) {

    List<String> distritos = new ArrayList();

    HashMap<String, String> distrito = new HashMap();

    List<Map<String, Object>> filas_distritos = jdbcTemplate.queryForList(CONSULTA_SOLO_DISTRITOS, new Object[]{numero, numero});

    if ((filas_distritos != null) && (!filas_distritos.isEmpty()) || (filas_distritos.size() != 0)) {

        Map<String, Object> row = filas_distritos.get(0);

        distritos.add((String) row.get("DISTRITO"));
        distritos.put("distrito", (String) row.get("DISTRITO"));

    }

    distrito.put("distrito", 
                 distritos.stream()
                 .collect(Collectors.joining(","));

    return distrito;
}
我不懂西班牙语,所以对于变量名,我很抱歉,我希望意思是清楚的,不管怎样,只要问一下就可以了


在以前的代码中,您可能会得到错误的结果。

我认为您应该使用2个列表来保存每个值(distrito和mensaje),一旦您收集了所有结果,您将通过加入列表eNet在地图中设置键,使用你的分隔符。@MarioSantini如果我只想放置发行版,那怎么办?那么你只需要一个列表对象来收集结果。@MarioSantini你能告诉我怎么做吗?关于这一点,我是新手,非常感谢您抽出时间在ASWER再次感谢您抽出时间与我在一起,我可以用这个解释。格拉齐·米勒!
public HashMap<String, String> getOnlyDistritoTarificacion(String numero) {

    List<String> distritos = new ArrayList();

    HashMap<String, String> distrito = new HashMap();

    List<Map<String, Object>> filas_distritos = jdbcTemplate.queryForList(CONSULTA_SOLO_DISTRITOS, new Object[]{numero, numero});

    if ((filas_distritos != null) && (!filas_distritos.isEmpty()) || (filas_distritos.size() != 0)) {

        Map<String, Object> row = filas_distritos.get(0);

        distritos.add((String) row.get("DISTRITO"));
        distritos.put("distrito", (String) row.get("DISTRITO"));

    }

    distrito.put("distrito", 
                 distritos.stream()
                 .collect(Collectors.joining(","));

    return distrito;
}
boolean numberConsulted = true;

if ((filas_distritos != null) && (!filas_distritos.isEmpty()) || (filas_distritos.size() != 0)) {
    // .... code ...
} else {
    numberConsulted = false;
}


if (numberConsulted) {
    distrito.put("mensaje", "El n&uacute;mero consultado (" + numero + ") ya pertenece a un Distrito de Tarificaci&oacute;n.");
} else {
    distrito.put("mensaje", "El n&uacute;mero consultado (" + numero + ") no pertenece a un Distrito de Tarificaci&oacute;n.");
}