में MySQL datetimes टाइमस्टैम्प हैंडलिंग एक जावा आवेदन में क्या होगा extracing और datetimes टाइमस्टैम्प का मिश्रण का उपयोग कर एक MySQL डेटाबेस के साथ तारीख की जानकारी inputting के मामले में एक अच्छा समझौता?जावा
जावा
उत्तर
जावा पक्ष में, तिथि आमतौर पर का प्रतिनिधित्व करती है (खराब तरीके से तैयार है, लेकिन वह एक तरफ) java.util.Date
। यह मूल रूप से एक long
के स्वाद, यह भी एक टाइमस्टैम्प के रूप में जाना में Epoch time द्वारा समर्थित है। इसमें दिनांक और समय दोनों भागों के बारे में जानकारी शामिल है। जावा में, परिशुद्धता मिलीसेकंड में है।
एसक्यूएल पक्ष में, वहाँ कई मानक दिनांक और समय प्रकार, DATE
, TIME
और TIMESTAMP
(कम से कुछ डीबी के भी DATETIME
कहा जाता है) कर रहे हैं, के रूप में java.sql.Date
, java.sql.Time
और java.sql.Timestamp
, सभी उपवर्गों java.util.Date
की JDBC में प्रतिनिधित्व कर रहे हैं। परिशुद्धता डीबी निर्भर है, अक्सर जावा जैसे मिलीसेकंड में, लेकिन यह सेकंड में भी हो सकती है।
java.util.Date
के विपरीत, java.sql.Date
में दिनांक भाग (वर्ष, महीना, दिन) के बारे में केवल जानकारी है। Time
(घंटे, मिनट, सेकंड) समय भाग के बारे में केवल जानकारी है और Timestamp
की तरह के रूप में java.util.Date
करता है, दोनों भागों के बारे में जानकारी शामिल है।
डीबी में समय स्टांप स्टोर करने के लिए सामान्य अभ्यास (इस प्रकार, जावा पक्ष में java.util.Date
और JDBC पक्ष में java.sql.Timestamp
) PreparedStatement#setTimestamp()
उपयोग करने के लिए है।
java.util.Date date = getItSomehow();
Timestamp timestamp = new Timestamp(date.getTime());
preparedStatement = connection.prepareStatement("SELECT * FROM tbl WHERE ts > ?");
preparedStatement.setTimestamp(1, timestamp);
डीबी से एक टाइमस्टैम्प प्राप्त करने के लिए सामान्य अभ्यास ResultSet#getTimestamp()
उपयोग करने के लिए है।
Timestamp timestamp = resultSet.getTimestamp("ts");
java.util.Date date = timestamp; // You can just upcast.
MySQL documentation जावा प्रकार के मानचित्रण MySQL प्रकार के बारे में जानकारी नहीं है। सामान्य रूप से, MySQL डेटाटाइम और टाइमस्टैम्प के लिए आपको java.sql.Timestamp
का उपयोग करना चाहिए। कुछ संसाधनों में शामिल हैं:
http://dev.mysql.com/doc/refman/5.1/en/datetime.html
http://www.coderanch.com/t/304851/JDBC/java/Java-date-MySQL-date-conversion
How to store Java Date to Mysql datetime...?
संपादित करें:
के रूप में दूसरों को संकेत दिया है, तार का उपयोग करने का सुझाव समस्याएं हो सकती हैं।
- 1. जावा: जावा
- 2. जावा जावा
- 3. समाधान जब जावा जावा
- 4. जावा के बिना जावा
- 5. जावा - जावा में प्रतिबिंब
- 6. जावा, जावा ईई
- 7. जावा: क्या जावा एप्लिकेशन
- 8. जावा
- 9. जावा
- 10. जावा
- 11. जावा
- 12. जावा
- 13. जावा
- 14. जावा
- 15. जावा
- 16. जावा
- 17. जावा
- 18. जावा,
- 19. जावा
- 20. जावा
- 21. जावा
- 22. जावा
- 23. जावा
- 24. जावा
- 25. जावा
- 26. जावा
- 27. जावा
- 28. जावा
- 29. जावा
- 30. जावा
आपको लगता है कि (जावा परत) मॉडल में java.sql.Timestamp का उपयोग कर बुरा है? – cherouvim
@cherouvim: हाँ। मॉडल किसी भी जेडीबीसी विनिर्देशों से अवगत नहीं होना चाहिए। टाइमस्टैम्प सेट करने के लिए केवल इसका इस्तेमाल करें। 'readyStatement.setTimestamp (नया टाइमस्टैम्प (date.getTime()));'। इसे प्राप्त करना आसान है क्योंकि यह पहले से ही 'java.util.Date' का उप-वर्ग है। – BalusC
यह ठीक काम करेगा यदि आपकी सभी मशीनें और उपयोगकर्ता एक ही समय क्षेत्र में हैं। अन्यथा, टाइमस्ऑन रूपांतरणों के MySQL जेडीबीसी ड्राइवर के हैंडलिंग से सावधान रहें अविश्वसनीय रूप से जटिल और छोटी गाड़ी है। उदाहरण के लिए http: // stackoverflow देखें।कॉम/प्रश्न/40670532/what-are-jdbc-mysql-driver-settings-for-sane-handling-of-datetime-and-timestamp/40681941 # 40681941 –