Java Oracle查询作为Hasmap返回<;字符串,字符串>;
我正在对Oracle数据库进行此查询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
从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úmero consultado (" + numero + ") ya pertenece a un Distrito de Tarificación.");
} else {
distrito.put("mensaje", "El número consultado (" + numero + ") no pertenece a un Distrito de Tarificación.");
}