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

จะตั้งค่าวันที่ / เวลาท้องถิ่นในตารางโดยใช้คลาส LocalDateTime ใน Java ได้อย่างไร


java.time แพ็คเกจของ Java8 มีคลาสชื่อ LocalDateTime ใช้เพื่อรับค่าปัจจุบันของวันที่และเวลาท้องถิ่น เมื่อใช้ค่านี้นอกเหนือจากค่าวันที่และเวลา คุณยังสามารถรับฟิลด์วันที่และเวลาอื่นๆ เช่น วันของปี วันในสัปดาห์ และสัปดาห์ของปี

การตั้งเวลาท้องถิ่นเป็นคอลัมน์

การตั้งค่าวันที่และเวลาท้องถิ่นเป็นคอลัมน์ในตาราง -

  • รับวัตถุ LocalDateTime − คุณสามารถรับ LocalDateTime วัตถุโดยเรียกใช้เมธอดแบบคงที่ now() เป็น −
//การรับวัตถุ LocalDateTime LocalDateTime localDateTime =LocalDateTime.now();
  • รับ LocalDate และ เวลาท้องถิ่น วัตถุจากด้านบนได้รับ LocalDateTime เป็น −
LocalDate localDate =localDateTime.toLocalDate (); LocalTime localTime =localDateTime.toLocalTime ()
  • ตอนนี้ ผ่าน LocalDate และ เวลาท้องถิ่น วัตถุไปยัง valueOf() วิธีการของ java.sql.Date และ java.sql.Time คลาสตามลำดับเป็น−
java.sql.Date date =java.sql.Date.valueOf(localDate);java.sql.Time time =java.sql.Time.valueOf(localTime);

ตัวอย่าง

ให้เราสร้างตารางที่มีชื่อส่ง ในฐานข้อมูล MySQL โดยใช้คำสั่ง CREATE ดังนี้ -

สร้างตารางการจัดส่ง ( ProductName VARCHAR(255), CustomerName VARCHAR(255), DispatchDate date, DeliveryTime time, Price INT, Location VARCHAR(255));

ตอนนี้ เราจะแทรก 5 บันทึกใน การส่ง ตารางโดยใช้คำสั่ง INSERT -

แทรกลงในค่าการส่ง ('Key-Board', 'Raja', DATE('2019-09-01'), TIME('11:00:00'), 7000, 'Hyderabad');แทรกลงในการจัดส่ง ค่า ('หูฟัง', 'โรจา', DATE('2019-05-01'), TIME('11:00:00'), 2000, 'Vishkhapatnam');แทรกลงในค่าการส่ง ('เมาส์', 'บูชา ', DATE('2019-03-01'), TIME('10:59:59'), 3000, 'Vijayawada');แทรกค่าการส่ง('Mobile', 'Vanaja', DATE('2019-03 -01'), TIME('10:10:52'), 9000, 'เจนไน');ใส่ค่าการส่ง ('Headset', 'Jalaja', DATE('2019-04-06'), TIME(' 11:08:59'), 6000, 'กัว');

โปรแกรม JDBC ที่ติดตามจะแทรกบันทึกใหม่ลงใน การส่ง ตารางโดยส่งค่าที่ต้องการ ในที่นี้ เรากำลังรับค่าวันที่และเวลาท้องถิ่นปัจจุบัน และแทรกค่าเหล่านี้เป็นค่าของคอลัมน์วันที่และเวลาของตาราง

<ก่อนหน้า> นำเข้า java.sql.Connection นำเข้า java.sql.DriverManager นำเข้า java.sql.PreparedStatement นำเข้า java.sql.ResultSet นำเข้า java.sql.SQLException นำเข้า java.sql.Statement นำเข้า java.time LocalDateTime;การตั้งค่าคลาสสาธารณะLocatDate { โมฆะคงที่สาธารณะหลัก (สตริง args []) พ่น SQLException {// การลงทะเบียนไดรเวอร์ DriverManager.registerDriver (ใหม่ com.mysql.jdbc.Driver ()); //รับการเชื่อมต่อสตริง mysqlUrl ="jdbc:mysql://localhost/mydatabase"; การเชื่อมต่อ con =DriverManager.getConnection (mysqlUrl, "root", "password"); System.out.println("การเชื่อมต่อสำเร็จ......"); //รับวัตถุ LocalDateTime LocalDateTime localDateTime =LocalDateTime.now (); System.out.println(localDateTime.toString()); //การแปลงค่าวันที่และเวลาจากโลคัลเป็น SQL java.sql.Date date =java.sql.Date.valueOf(localDateTime.toLocalDate()); เวลา java.sql.Time =java.sql.Time.valueOf (localDateTime.toLocalTime()); //การสร้างข้อความค้นหาสตริงที่เตรียมไว้ ="INSERT INTO Dispatches VALUES (?, ?, ?, ?, ?, ?)"; preparedStatement pstmt =con.prepareStatement (แบบสอบถาม); pstmt.setString(1, "ดู"); pstmt.setString(2, "ราชา"); pstmt.setDate(3 วันที่); pstmt.setObject(4, เวลา); pstmt.setInt(5, 4000); pstmt.setString(6, "เจนไน"); pstmt.execute(); System.out.println("แถวที่แทรก ...."); //ดึงค่าคำสั่ง stmt =con.createStatement(); ResultSet rs =stmt.executeQuery("เลือก * จากการจัดส่ง"); ในขณะที่ (rs.next ()) { System.out.println ("ชื่อผลิตภัณฑ์:"+ rs.getString ("ProductName")); System.out.println("ชื่อลูกค้า:"+rs.getString("CustomerName")); System.out.println("วันที่จัดส่ง:"+rs.getDate("DispatchDate")); System.out.println("เวลาจัดส่ง:"+rs.getTime("เวลาจัดส่ง")); System.out.println("ตำแหน่ง:"+rs.getString("ตำแหน่ง")); System.out.println(); } }}

ผลลัพธ์

เชื่อมต่อแล้ว......2019-05-14T15:48:42.457Rows inserted ....Product Name:Key-BoardCustomer Name:RajaDate Of Dispatch:2019-09-01 Delivery Time:11:00:00Location :ไฮเดอราบาดชื่อผลิตภัณฑ์:หูฟังชื่อลูกค้า:RojaDate Of Dispatch:2019-05-01 เวลาจัดส่ง:11:00:00 น. สถานที่:Vishakhapatnam ชื่อผลิตภัณฑ์:Mouse ชื่อลูกค้า:Puja วันที่จัดส่ง:2019-03-01 เวลาจัดส่ง:10:59:59 ที่ตั้ง:วิชัยวาทะชื่อผลิตภัณฑ์:MobileCustomer Name:VanajaDate Of Dispatch:2019-03-01 Delivery Time:10:10:52Location:ChennaiProduct Name:Headsetลูกค้าชื่อ:JalajaDate Of Dispatch:2019-04-06 Delivery Time:11:08:59Location:GoaProduct Name:WatchCustomer Name:RajanDate ของการจัดส่ง:2019-05-14 เวลาจัดส่ง:15:48:42 ที่ตั้ง:เจนไน