【问题标题】:Convert to simplejdbccall resultset to java objects将 simplejdbccall 结果集转换为 java 对象
【发布时间】:2020-10-30 22:18:55
【问题描述】:

我正在调用 DB2 过程,它接受一个输入参数并返回一个结果集。 我如何将 O/P 映射到我的 pojo 类。 我必须将结果映射到下一个 pojo 类。

    simpleJdbcCall = new SimpleJdbcCall(jdbctemplate)
                    .withSchemaName("myschema")
                    .withProcedureName("DB2-PROC")
                    .declareParameters(
                            new SqlParameter("1", Types.VARCHAR)
                        );
                        
    Map<String, Object> map =   simpleJdbcCall.execute("2020-01-01");
    
    for (Map.Entry<String, Object> entry : map.entrySet()) {
  System.out.println("Entry value  is " + entry.getValue() );
    }
        
        //my o/p
        Entry value  is [{Col_1=abc, col_2=abc,col_2=xyz, col_2=abc},....];    

【问题讨论】:

    标签: spring spring-boot spring-data-jpa spring-jdbc jdbctemplate


    【解决方案1】:

    您可以使用returningResultSet(parameterName, rowMapper) 方法将值映射到对象。

    这里有一些参考代码:

    SimpleJdbcCall procedureActor = new SimpleJdbcCall(dataSource)
                .withSchemaName("myschema")
                .withProcedureName("DB2-PROC")
                .declareParameters(
                        new SqlParameter("1", Types.VARCHAR))
                .returningResultSet("mapObjRefrence", new RowMapper<Contact>() {
         
                    @Override
                    public Contact mapRow(ResultSet rs, int rowNum) throws SQLException {
                        YourPojo pojo = new YourPojo();
                         
                        pojo.setId(rs.getInt("col_1"));
                        pojo.setName(rs.getString("col_2"));
                        pojo.setEmail(rs.getString("col_2"));
                        pojo.setAddress(rs.getString("col_3"));
                        pojo.setTelephone(rs.getString("col_4"));
                         
                        return contact;
                    }
                });
         
        Map<String, Object> out = procedureActor.execute("2020-01-01");
         
        List<YourPojo> listPojos = (List<YourPojo>) out.get("mapObjRefrence");
    

    您还可以检查多表结果:How to get multi table results using SimpleJDBCCall in spring?

    【讨论】:

      猜你喜欢
      • 2015-12-13
      • 2018-10-08
      • 2020-04-23
      • 2013-09-28
      • 2019-01-24
      • 2019-12-29
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      相关资源
      最近更新 更多