SQL-এ date ডেটা টাইপ ব্যবহার করে তারিখ মান ইনসার্ট করা যায়। java.sql.Date ক্লাস SQL DATE টাইপে ম্যাপ করে।
PreparedStatement ইন্টারফেসে setDate() নামক একটি মেথড আছে। এটি ব্যবহার করে টেবিলে তারিখ ইনসার্ট করা যায়। এই মেথড দুটি প্যারামিটার গ্রহণ করে:
একটি ইন্টিজার যা প্লেসহোল্ডার (?) এর প্যারামিটার ইনডেক্স নির্দেশ করে যাতে তারিখ মান সেট করতে হবে।
একটি Date অবজেক্ট যা তারিখ মান নির্দেশ করে। java.sql.Date ক্লাসের কনস্ট্রাক্টর একটি long টাইপ ভেরিয়েবল গ্রহণ করে যা epoch (স্ট্যান্ডার্ড বেস টাইম অর্থাৎ ১ জানুয়ারি ১৯৭০, ০০:০০:০০ GMT) থেকে মিলিসেকেন্ড সংখ্যা নির্দেশ করে।
উদাহরণ
ধরি MySQL ডেটাবেসে Emp নামক একটি টেবিল তৈরি করা হয়েছে নিচের বিবরণের সাথে:
+----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | DOB | date | YES | | NULL | | | Location | varchar(255) | YES | | NULL | | +----------+--------------+------+-----+---------+-------+
নিচের JDBC প্রোগ্রাম এই টেবিলে রেকর্ড ইনসার্ট করে:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Date;
public class InsertingDate {
public static void main(String args[]) throws Exception {
// কানেকশন
String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
System.out.println("Connection established......");
// টেবিলে মান ইনসার্ট
String query = "INSERT INTO Emp(Name, DOB, Location) VALUES (?, ?, ?)";
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1, "Amit");
pstmt.setDate(2, new Date(622790105000L));
pstmt.setString(3, "Hyderabad");
pstmt.execute();
pstmt.setString(1, "Sumith");
pstmt.setDate(2, new Date(620611200000L));
pstmt.setString(3, "Vishakhapatnam");
pstmt.execute();
pstmt.setString(1, "Sudha");
pstmt.setDate(2, new Date(336614400000L));
pstmt.setString(3, "Vijayawada");
pstmt.execute();
System.out.println("Records inserted......");
}
}
আউটপুট
Connection established...... Records inserted......
MySQL ডেটাবেসে টেবিল যাচাই করলে কনটেন্ট নিচের মতো দেখাবে:
mysql> select * from Emp; +--------+------------+----------------+ | Name | DOB | Location | +--------+------------+----------------+ | Amit | 1989-09-26 | Hyderabad | | Sumith | 2019-03-19 | Vishakhapatnam | | Sudha | 2019-03-19 | Vijayawada | +--------+------------+----------------+ 3 rows in set (0.00 sec)