Java PreparedStatement से MySQL DATE कॉलम में डेट इन्सर्ट करना
Java से MySQL DATE कॉलम में वर्तमान डेट इन्सर्ट करने के लिए PreparedStatement और java.sql.Date का उपयोग करें।
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
PassengerId INT,
PassengerName VARCHAR(40),
ArrivalDate DATE
);
Java कोड:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertDateFromJava {
public static void main(String[] args) {
Connection con = null;
PreparedStatement ps = null;
try {
// वर्तमान जावा डेट प्राप्त करें
java.util.Date javaDate = new java.util.Date();
// java.util.Date को java.sql.Date में बदलें
java.sql.Date mySQLDate = new java.sql.Date(javaDate.getTime());
// डेटाबेस कनेक्शन
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/web?useSSL=false",
"root", "123456"
);
// पैरामीटराइज्ड क्वेरी
String query = "INSERT INTO DemoTable(PassengerId, PassengerName, ArrivalDate) VALUES (?, ?, ?)";
ps = con.prepareStatement(query);
ps.setInt(1, 101);
ps.setString(2, "Adam");
ps.setDate(3, mySQLDate); // java.sql.Date ऑब्जेक्ट सेट करें
ps.executeUpdate();
System.out.println("Record is inserted with current Date......");
} catch (Exception e) {
e.printStackTrace();
} finally {
// संसाधन बंद करें
try { if (ps != null) ps.close(); } catch (Exception e) {}
try { if (con != null) con.close(); } catch (Exception e) {}
}
}
}
आउटपुट:
Record is inserted with current Date......
टेबल रिकॉर्ड्स जांचें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-------------+---------------+-------------+ | PassengerId | PassengerName | ArrivalDate | +-------------+---------------+-------------+ | 101 | Adam | 2019-09-07 | +-------------+---------------+-------------+
मुख्य बिंदु:
- java.util.Date → java.sql.Date:
new java.sql.Date(javaDate.getTime())रूपांतरण आवश्यक है - PreparedStatement: SQL इंजेक्शन रोकता है, पैरामीटर बाइंडिंग के लिए
setDate()उपयोग करें - ps.setDate(3, mySQLDate): तीसरे पैरामीटर (?) के लिए डेट सेट करता है
- MySQL DATE टाइप: केवल तारीख स्टोर करता है (समय नहीं), java.sql.Date से मेल खाता है
समय सहित (DATETIME/TIMESTAMP): java.sql.Timestamp और ps.setTimestamp() उपयोग करें।
सर्वोत्तम अभ्यास: कनेक्शन पूल (HikariCP), try-with-resources (Java 7+), एक्सेप्शन हैंडलिंग, लॉगिंग।