java.time gói của Java8 cung cấp một lớp có tên LocalDateTime được sử dụng để lấy giá trị hiện tại của ngày và giờ cục bộ. Sử dụng điều này ngoài các giá trị ngày và giờ, bạn cũng có thể nhận được các trường ngày và giờ khác, chẳng hạn như ngày trong năm, ngày trong tuần và tuần trong năm.
Đặt Giờ địa phương thành một cột
Để đặt giá trị ngày và giờ cục bộ thành một cột trong bảng -
- Lấy đối tượng LocalDateTime - Bạn có thể lấy LocalDateTime đối tượng bằng cách gọi phương thức static now () as -
//Getting the LocalDateTime object LocalDateTime localDateTime = LocalDateTime.now();
- Nhận LocalDate và LocalTime các đối tượng từ trên đã thu được LocalDateTime như -
LocalDate localDate = localDateTime.toLocalDate(); LocalTime localTime = localDateTime.toLocalTime()
- Bây giờ, hãy vượt qua LocalDate và LocalTime đối tượng của valueOf () phương thức của java.sql.Date và java.sql.Time các lớp tương ứng như−
java.sql.Date date = java.sql.Date.valueOf(localDate); java.sql.Time time = java.sql.Time.valueOf(localTime);
Ví dụ
Hãy để chúng tôi tạo một bảng có tên công văn trong cơ sở dữ liệu MySQL bằng cách sử dụng câu lệnh CREATE như sau -
CREATE TABLE dispatches( ProductName VARCHAR(255), CustomerName VARCHAR(255), DispatchDate date, DeliveryTime time, Price INT, Location VARCHAR(255) );
Bây giờ, chúng tôi sẽ chèn 5 bản ghi trong công văn bảng sử dụng câu lệnh INSERT -
insert into dispatches values('Key-Board', 'Raja', DATE('2019-09-01'), TIME('11:00:00'), 7000, 'Hyderabad'); insert into dispatches values('Earphones', 'Roja', DATE('2019-05-01'), TIME('11:00:00'), 2000, 'Vishakhapatnam'); insert into dispatches values('Mouse', 'Puja', DATE('2019-03-01'), TIME('10:59:59'), 3000, 'Vijayawada'); insert into dispatches values('Mobile', 'Vanaja', DATE('2019-03-01'), TIME('10:10:52'), 9000, 'Chennai'); insert into dispatches values('Headset', 'Jalaja', DATE('2019-04-06'), TIME('11:08:59'), 6000, 'Goa');
Chương trình JDBC sau sẽ chèn một bản ghi mới vào công văn bảng bằng cách chuyển các giá trị cần thiết. Tại đây, chúng tôi đang nhận các giá trị ngày và giờ cục bộ hiện tại và chèn chúng dưới dạng giá trị của các cột Ngày và Giờ của bảng.
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.time.LocalDateTime; public class settingLocatDate { public static void main(String args[]) throws SQLException { //Registering the Driver DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //Getting the connection String mysqlUrl = "jdbc:mysql://localhost/mydatabase"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); //Getting the LocalDateTime object LocalDateTime localDateTime = LocalDateTime.now(); System.out.println(localDateTime.toString()); //Converting date and time values from local to SQL java.sql.Date date = java.sql.Date.valueOf(localDateTime.toLocalDate()); java.sql.Time time = java.sql.Time.valueOf(localDateTime.toLocalTime()); //Creating a Prepared Statement String query = "INSERT INTO Dispatches VALUES (?, ?, ?, ?, ?, ?)"; PreparedStatement pstmt = con.prepareStatement(query); pstmt.setString(1, "Watch"); pstmt.setString(2, "Rajan"); pstmt.setDate(3, date); pstmt.setObject(4, time); pstmt.setInt(5, 4000); pstmt.setString(6, "Chennai"); pstmt.execute(); System.out.println("Rows inserted ...."); //Retrieving values Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("select * from dispatches"); while(rs.next()) { System.out.println("Product Name: "+rs.getString("ProductName")); System.out.println("Customer Name: "+rs.getString("CustomerName")); System.out.println("Date Of Dispatch: "+rs.getDate("DispatchDate")); System.out.println("Delivery Time: "+rs.getTime("DeliveryTime")); System.out.println("Location: "+rs.getString("Location")); System.out.println(); } } }
Đầu ra
Connection established...... 2019-05-14T15:48:42.457 Rows inserted .... Product Name: Key-Board Customer Name: Raja Date Of Dispatch: 2019-09-01 Delivery Time: 11:00:00 Location: Hyderabad Product Name: Earphones Customer Name: Roja Date Of Dispatch: 2019-05-01 Delivery Time: 11:00:00 Location: Vishakhapatnam Product Name: Mouse Customer Name: Puja Date Of Dispatch: 2019-03-01 Delivery Time: 10:59:59 Location: Vijayawada Product Name: Mobile Customer Name: Vanaja Date Of Dispatch: 2019-03-01 Delivery Time: 10:10:52 Location: Chennai Product Name: Headset Customer Name: Jalaja Date Of Dispatch: 2019-04-06 Delivery Time: 11:08:59 Location: Goa Product Name: Watch Customer Name: Rajan Date Of Dispatch: 2019-05-14 Delivery Time: 15:48:42 Location: Chennai