PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como posso definir um parâmetro String[] para uma consulta nativa?


Estou muito atrasado para respondê-la.

Esta solução é uma espécie de solução alternativa usando a função interna do postgreSQL, que definitivamente funcionou para mim.

blog de referência

1) Converter matriz de string em string separada por vírgula

Se você estiver usando Java8, é bem fácil. outras opções estão aqui
String commaSeparatedString = String.join(",",stringArray); // Java8 feature

2) Função interna do PostgreSQL string_to_array()

você pode encontrar outras funções de array postgreSQL aqui
// tableName ( name text, string_array_column_name text[] )

String query = "insert into tableName(name,string_array_column_name ) values(?, string_to_array(?,',') )";


int[] types = new int[] { Types.VARCHAR, Types.VARCHAR};

Object[] psParams = new Object[] {"Dhruvil Thaker",commaSeparatedString };

jdbcTemplate.batchUpdate(query, psParams ,types); // assuming you have jdbctemplate instance