sql >> Database teknologi >  >> RDS >> PostgreSQL

Spring JDBC + Postgres SQL + Java 8 - konvertering fra/til LocalDate

Ny Date &Date API-understøttelse med JDBC er defineret af JEP 170:JDBC 4.2 . Postgres downloadside kompatibilitet med JDBC 4.2 nye funktioner starter først fra Postgres version 9.4, så nogle kompatibilitetsudfordringer vil dukke op ved brug af den nye API med ældre drivere.

Selv setObject(1, new java.util.Date()); afvises af den samme begrænsning i Postgres (som med glæde accepteres af MySQL), ikke kun den nye API som LocalDate . Nogle adfærd vil være implementeringsafhængige, så kun java.sql.* er garanteret stort set (groft sagt).

Hvad angår Spring JDBC-rammen, tror jeg, at tilsidesættelse af dens adfærd virker for at komme uden om det uden at fortryde det senere. Jeg foreslår en lidt anden tilgang til det, du allerede har gjort:

  1. Udvid BeanPropertySqlParameterSource adfærd til at arbejde med den nye dato og klokkeslæt API og andre klasser forbundet med parameterinput, hvis det er nødvendigt (jeg er ikke bekendt med Spring API).
  2. Udtræk den allerede tilsidesatte adfærd for BeanPropertyRowMapper til en anden klasse for at hente handlinger.
  3. Afslut det hele med et fabriksmønster eller en hjælpeklasse, så du ikke behøver at se på det igen.

På denne måde forbedrer du fremtidige refactoring-kapaciteter, hvis API bliver understøttet, og reducerer mængden af ​​kode, der er nødvendig under udvikling.

Du kan også kigge på nogle DAO nærmer sig.



  1. Kantet parentes i tabel-/kolonnenavn understøttes ikke?

  2. MySQL c# Connection String failover

  3. Hvordan integrerer man Apache Spark med MySQL til læsning af databasetabeller som en spark-dataramme?

  4. Er der et fald i ydeevnen, hvis der er for mange kolonner i en tabel?