mirage
mirage copied to clipboard
Add Java 8 JSR 310 compatibility
Add Java 8 JSR 310 compatibility.
Hi,
I used Mirage-SQL for the first time recently, but I really like it.
What do you think about Date and Time API (JSR 310)?
It's not difficult because it's just adding some ValueTypes of java.time.LocalDate , java.time.LocalDateTime and so on.
Here's my sample codes. https://github.com/MasatoshiTada/mirage-sql-sample/blob/master/src/main/java/com/example/valuetype/LocalDateValueType.java https://github.com/MasatoshiTada/mirage-sql-sample/blob/master/src/main/java/com/example/entity/Employee.java#L9
However, I think there are two ways to achieve this (like below).
- Just adding new
ValueTypestomiragemodule. - Creating new
ValueTypesas separated module such asmirage-valuetypes-jsr310.
Which is better do you think?
If I can, I'd like to send PR about this matter.
Just adding new ValueTypes to mirage module.
Looks good. What do you think? @aadrian
@MasatoshiTada I think "way 1" is better.
Unfortunately not all JDBC drivers support JSR310 yet: most notably and incredibly: the Oracle DB one :( - so I think that dialect specific handling would also might be needed.
Currently we have no tests (integration) for each dialect :( . Something with https://github.com/flapdoodle-oss/de.flapdoodle.embed.process might be a good start.
Thank you for your comments!
Unfortunately not all JDBC drivers support JSR310 yet
Does this mean "resultSet.getObject(columnName, LocalDate.class) throws Exception"?
I think it is no problem if we write like below;
Date date = resultSet.getDate(columnName);
LocalDate localDate = date.toLocalDate();
MyBatis's TypeHandlers use this way.
https://github.com/mybatis/typehandlers-jsr310/tree/master/src/main/java/org/apache/ibatis/type