2017-02-23 10 views
7

मैं java.sql.Date को एक जेडीबीसी डेटाबेस से java.time.LocalDateTime पर कैसे परिवर्तित कर सकता हूं?java.sql.date को java.time में कनवर्ट करें। लोकलडेटाइम

+9

संभावित डुप्लिकेट [स्थानीयडेट और एसक्यूएल.डेट] के बीच कनवर्ट करें (http://stackoverflow.com/questions/29750861/convert-between-localdate-and-sql-date) – BackSlash

+1

मैंने पहले ही उस प्रश्न को देखा है। लेकिन मैं एक SQLDDate को स्थानीयडेटाटाइम में कनवर्ट करने की कोशिश कर रहा हूं, न कि स्थानीयडेट। – Ferre12

+0

फिर @nobody द्वारा लिंक किया गया उत्तर मदद कर सकता है (डुप्लिकेट): [java.time.LocalDateTime और java.util.Date] के बीच कनवर्ट करना (http://stackoverflow.com/questions/19431234/converting-between-java-time- localdatetime और जावा-util की तारीख)। 'java.sql.Date'' java.util.Date' का उप-वर्ग है, इसलिए आप इसे कास्ट कर सकते हैं। – BackSlash

उत्तर

9

यह मेरे विचार से वास्तव में आसान था। यह मेरे लिए काम किया: result.getTimestamp("value").toLocalDateTime()

+0

यह एक व्यावहारिक उत्तर है और <= जावा 7 के लिए सही है, लेकिन आप 'hibernate-java8' लाइब्रेरी का उपयोग करके परिवर्तनों को छोड़ सकते हैं। आजकल एक बेहतर तरीका हो सकता है। –

2

आप जावा 8 का उपयोग कर और हाइबरनेट 5 रहे हैं, तो java.sql.Date से/परिवर्तित करने की कोई जरूरत नहीं है, केवल जावा के जादू पर भरोसा नहीं है।

निर्भरता आप उपयोग करने की आवश्यकता है:

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

मामले में आप वसंत-बूट का उपयोग कर रहे किसी भी अतिरिक्त निर्भरता घोषित करने के लिए कोई जरूरत नहीं है।

आप जावा के पिछले संस्करण का उपयोग कर रहे हैं, तो सिफारिश की तरह इस एक एक कनवर्टर परिभाषित करने के लिए है:

@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()); 
    } 
} 

आप इस link में जावा 8 में LocalDateTime के उपयोग के बारे में अधिक पाया जा सकता है, और के बारे में अधिक इस link पर इस प्रकार के कन्वर्टर्स।

संबंधित मुद्दे