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

Spring JDBC + Postgres SQL + Java 8 - conversão de/para LocalDate


O novo suporte da API Date &Date com JDBC é definido por JEP 170:JDBC 4.2 . Postgres página de download a compatibilidade com os novos recursos do JDBC 4.2 só começa a partir da versão 9.4 do Postgres, então alguns desafios de compatibilidade aparecerão usando a nova API com drivers mais antigos.

Mesmo setObject(1, new java.util.Date()); é rejeitado pela mesma restrição no Postgres (que é bem aceito pelo MySQL), não apenas a nova API como LocalDate . Alguns comportamentos serão dependentes da implementação, portanto, apenas java.sql.* é praticamente garantido (grosseiramente falando).

Quanto ao framework Spring JDBC, acho que substituir seu comportamento funciona para contorná-lo sem se arrepender depois. Sugiro uma abordagem um pouco diferente para o que você já fez:
  1. Estender BeanPropertySqlParameterSource comportamento para trabalhar com a nova API de data e hora e outras classes associadas à entrada de parâmetros, se necessário (não estou familiarizado com essa API do Spring).
  2. Extraia o comportamento já modificado de BeanPropertyRowMapper para outra classe para buscar operações.
  3. Encerre tudo com um padrão de fábrica ou classe de utilitário para que você não precise olhar novamente.

Dessa forma, você aprimora os recursos de refatoração futuros se a API for suportada e reduz a quantidade de código necessária durante o desenvolvimento.

Você também pode ver alguns DAO abordagens.