Новата поддръжка на API за дата и дата с JDBC се определя от JEP 170:JDBC 4.2 . Postgres страница за изтегляне съвместимостта с новите функции на JDBC 4.2 започва едва от Postgres версия 9.4, така че някои предизвикателства за съвместимост ще изскочат при използване на новия API с по-стари драйвери.
Дори setObject(1, new java.util.Date());
се отхвърля от същото ограничение в Postgres (което се приема с радост от MySQL), не само новия API като LocalDate
. Някои поведения ще зависят от внедряването, така че само java.sql.*
е почти гарантирано (грубо казано).
Що се отнася до Spring JDBC рамката, мисля, че замяната на нейното поведение работи, за да я заобиколите, без да съжалявате по-късно. Предлагам малко по-различен подход за това, което вече направихте:
- Разширете
BeanPropertySqlParameterSource
поведение за работа с новия API за дата и час и други класове, свързани с въвеждане на параметри, ако е необходимо (не съм запознат с този API на Spring). - Извличане на вече замененото поведение на
BeanPropertyRowMapper
към друг клас за операции за извличане. - Увийте всичко с фабричен шаблон или полезен клас, за да не се налага да го гледате отново.
По този начин вие подобрявате бъдещите възможности за рефакторинг, ако API се поддържа и намалявате количеството код, необходим по време на разработката.
Можете също така да разгледате някои DAO подходи.