Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะจัดการวันที่ใน JDBC ได้อย่างไร?


คุณสามารถแทรกค่าวันที่ใน SQL โดยใช้ประเภทข้อมูลวันที่ คลาส java.sql.Date จะจับคู่กับประเภท SQL DATE

คำชี้แจงที่เตรียมไว้ อินเทอร์เฟซให้เมธอดชื่อ setDate() . คุณสามารถแทรกวันที่ลงในตารางได้โดยใช้สิ่งนี้ วิธีนี้ยอมรับสองพารามิเตอร์ -

  • จำนวนเต็มที่แสดงดัชนีพารามิเตอร์ของตัวยึดตำแหน่ง (?) ที่เราจำเป็นต้องตั้งค่าวันที่

  • วัตถุ Date ที่แสดงค่าวันที่ที่จะส่งผ่าน ตัวสร้างของคลาส java.sql.Date ยอมรับตัวแปรประเภทยาวซึ่งแทนจำนวนมิลลิวินาทีจากยุค (เวลาฐานมาตรฐานคือ 1 มกราคม 1970, 00:00:00 GMT)

ตัวอย่าง

สมมติว่าเราได้สร้างตารางชื่อ Emp ในฐานข้อมูล MySQL โดยมีคำอธิบายดังต่อไปนี้ -

<ก่อนหน้า>+----------+--------------+------+----+------- ---+-------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+----------+-------------+------+----+-------- --------+| ชื่อ | varchar(255) | ใช่ | | NULL | || วันเกิด | วันที่ | ใช่ | | NULL | || ที่ตั้ง | varchar(255) | ใช่ | | NULL | |+----------+-------------+------+----+--------- +-------+

การติดตามโปรแกรม JDBC จะแทรกบันทึกลงในตารางนี้ -

นำเข้า java.sql.Connection นำเข้า java.sql.DriverManager นำเข้า java.sql.PreparedStatement นำเข้า java.sql.ResultSet นำเข้า java.sql.Statement นำเข้า java.sql.Date คลาสสาธารณะ InsertingDate { สาธารณะ โมฆะคงที่หลัก (สตริง args []) พ่นข้อยกเว้น (// การรับการเชื่อมต่อสตริง mysqlUrl ="jdbc:mysql://localhost/sampleDB"; การเชื่อมต่อ con =DriverManager.getConnection (mysqlUrl, "root", "password"); System.out.println("การเชื่อมต่อสำเร็จ......"); //การใส่ค่าลงในตาราง String query ="INSERT INTO Emp(Name, DOB, Location) VALUES (?, ?, ?)"; preparedStatement pstmt =con.prepareStatement (แบบสอบถาม); pstmt.setString(1, "อามิต"); pstmt.setDate(2, วันที่ใหม่(622790105000L)); pstmt.setString(3, "ไฮเดอราบาด"); pstmt.execute(); pstmt.setString(1, "สุมิท"); pstmt.setDate (2, วันที่ใหม่ (620611200000L)); pstmt.setString(3, "วิศาขาปัตตนัม"); pstmt.execute(); pstmt.setString(1, "สุดา"); pstmt.setDate (2, วันที่ใหม่ (336614000000L)); pstmt.setString(3, "วิชัยวาทะ"); pstmt.execute(); System.out.println("บันทึกถูกแทรก......"); }}

ผลลัพธ์

เชื่อมต่อแล้ว......แทรกบันทึกแล้ว......

หากคุณตรวจสอบตารางในฐานข้อมูล MySQL คุณสามารถสังเกตเนื้อหาของตารางเป็น −

mysql> เลือก * จาก Emp;+---------+ --------------+----------------+ | ชื่อ | วันเกิด | ที่ตั้ง |+---------+-----------+----------------+| อามิต | 1989-09-26 | ไฮเดอราบัด || สุมิธ | 2019-03-19 | วิศาขาปัตตนัม || สุดา | 2019-03-19 | วิชัยวาทะ |+--------+-----------+----------------+3 แถวในชุด (0.00 วินาที)