首页 > 解决方案 > 使用 jdbctemplate 将查询中的数据保存在模型中

问题描述

下午好,我有一个查询,如何使用 jdbctemplate 将查询的值保存在模型或类中。

这是我的代码:

RequestMapping(value= "/formobligatorio/{pidm}" , method = RequestMethod.GET)
    public List<FormPerson> grupoCodf(@PathVariable Long pidm) {
      int codf = 0;
      LinkedList<Integer> codFormsOblig = new LinkedList<Integer>();
        List<Integer> codfoblig = new ArrayList<Integer>();
        String query=" select p.codigo_uzgtformularios from UTIC.UZGTFORMULARIO_PERSONA p,UTIC.UZGTFORMULARIOS f where p.spriden_pidm =" + pidm + "and p.codigo_uzgtformularios = f.codigo_uzgtformularios and (  p.uzgtformularios_estado_llenado ='N' or f.uzgtformularios_estado_llenado ='S' or f.uzgtformularios_estado_llenado ='M' )  ORDER BY codigo_UZGTFORMULARIOS ASC";
        codfoblig = jdbcTemplate.queryForList(query,Integer.class);
        for (int u = 0; u < codfoblig.size(); u++) {
            codf = codfoblig.get(u);
            codFormsOblig.add(codf);
        }
        System.out.println("codFormsOblig "+codFormsOblig);

// 这是我的问题,codFormsOblig 有 2 个值,因此下面的查询将执行 2 次不同的结果,我需要将这 2 个结果保存在我的模型或 FormPerson 类中。

    for (int u = 0; u <codFormsOblig.size (); u ++) {
    String query1 = "SELECT CODIGO_UZGTFORMULARIOS, UZGTFORMULARIOS_ESTADO FROM UTIC.UZGTFORMULARIOS where UZGTFORMULARIOS_ESTADO = 1 AND codigo_uzgtFormularios =" + codFormsOblig.get (u) + "AND UZGTFORMULARIOS_DE = CODE"
                     
         // I don't know what type of jdbctemplate to use , queryforobject, queryforlist or any other that will allow me to save the values of the fields in the model
;
           List <FormPerson> cod = jdbcTemplate.queryForObject (query1, FormPerson.class);

                         return code;


}

标签: javaspringspring-bootspring-data-jpajdbctemplate

解决方案


你需要使用BeanPropertyRowMapper.

https://mkyong.com/spring/spring-jdbctemplate-querying-examples/

此外,您需要在此查询中留一个空格

    String query1 = "SELECT CODIGO_UZGTFORMULARIOS, UZGTFORMULARIOS_ESTADO FROM
 UTIC.UZGTFORMULARIOS where UZGTFORMULARIOS_ESTADO = 1 AND codigo_uzgtFormularios =" +
 codFormsOblig.get (u) + "AND UZGTFORMULARIOS_DE = CODE"

如果你有课

class FormPerson {

  private String name;

  private String value;

}

您将需要在 SQL 中使用别名

SELECT CODIGO_UZGTFORMULARIOS as name, UZGTFORMULARIOS_ESTADO as value

您需要学习的主要内容

  1. 如何格式化代码。

  2. 如何为变量命名。


推荐阅读