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:
- 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). - Udtræk den allerede tilsidesatte adfærd for
BeanPropertyRowMapper
til en anden klasse for at hente handlinger. - 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.