2017-02-23 12 views
7

Jak przekonwertować wartość java.sql.Date zwróconą z bazy danych JDBC na java.time.LocalDateTime?Konwertuj java.sql.date na java.time.LocalDateTime

+9

Możliwy duplikat [Konwersja między datą lokalną a datą sql.Data] (http://stackoverflow.com/questions/29750861/convert-between-localdate-and-sql-date) – BackSlash

+1

Już obejrzałem to pytanie. Ale próbuję przekonwertować sql.Date na LocalDateTime, a nie LocalDate. – Ferre12

+0

Następnie odpowiedź związana z @nobody może pomóc (duplikować): [Konwertowanie między java.time.LocalDateTime i java.util.Date] (http://stackoverflow.com/questions/19431234/converting-between-java-time- localdatetime-and-java-util-date). 'java.sql.Date' jest podklasą' java.util.Date', więc możesz ją rzucić. – BackSlash

Odpowiedz

9

To było naprawdę łatwiejsze niż myślałem. Ten pracował dla mnie: result.getTimestamp("value").toLocalDateTime()

+0

Jest to wiarygodna odpowiedź i jest poprawna dla <= Java 7, ale można pominąć transformacje za pomocą biblioteki 'hibernate-java8'. Dziś może być lepsza droga. –

2

Jeśli używasz Java 8 i hibernacji 5 nie ma potrzeby konwersji do/z java.sql.Date, ufa tylko na magii Java.

Zależność trzeba użyć to:

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-java8</artifactId> 
    <version>5.1.0.Final</version> 
</dependency> 

W przypadku korzystania wiosna-boot nie ma potrzeby deklarowania dodatkowego zależność.

Jeśli korzystasz ze starszej wersji Java zalecenie jest zdefiniowanie Converter jak ten:

@Converter(autoApply = true) 
public class LocalDateAttributeConverter implements AttributeConverter<LocalDate, Date> { 

    @Override 
    public Date convertToDatabaseColumn(LocalDate locDate) { 
    return (locDate == null ? null : Date.valueOf(locDate)); 
    } 

    @Override 
    public LocalDate convertToEntityAttribute(Date sqlDate) { 
    return (sqlDate == null ? null : sqlDate.toLocalDate()); 
    } 
} 

można znaleźć więcej na temat wykorzystania LocalDateTime w Java 8 w tym link, a więcej o tego rodzaju konwertery na tym link.