Hibernate là gì? Câu hỏi phỏng vấn Hibernate cho vị trí Java Developer

hibernate interview questions - logoCác nhà phát triển Java trên toàn thế giới luôn cố gắng để tìm các khung framework tốt nhất để sử dụng trong các dự án lập trình của họ. Các khung framework khác nhau cung cấp các tính năng khác nhau, vì vậy thường rất khó tìm thấy một khung framework phù hợp với tất cả các mong muốn và theo nhu cầu. Tuy nhiên, Hibernate framework ngày càng được chú ý trong các cộng đồng lập trình. Với sự gia tăng và ngày càng trở nên phổ biến, nó được coi là một trong những công cụ thiết yếu mà một lập trình viên Java nên biết đến khi muốn kiếm một công việc ổn định với mức lương hấp dẫn. Trong hướng dẫn này, bạn sẽ được tìm hiểu các câu hỏi phỏng vấn Hibernate trong Java cần thiết như Hibernate là gì? v.v, chúng sẽ giúp bạn ghi điểm trong buổi phỏng vấn cho vị trí là nhà phát triển Java.

Nội dung

Câu hỏi Hibernate cơ bản

Phần đầu tiên của hướng dẫn này đề cập đến một số câu hỏi đơn giản như Hibernate là gì? Đây là những ví dụ về các câu hỏi có thể nhận được khi bắt đầu cuộc phỏng vấn xin việc hoặc nếu Hibernate framework không phải là  framework chính mà nhà tuyển dụng đang tìm kiếm. Mặc dù vậy, điều quan trọng là phải biết những câu hỏi và câu trả lời, vì chúng có thể là yếu tố quyết định cho sự thành công hay thất bại của buổi phỏng vấn.

Câu hỏi 1: Hibernate là gì?

Một câu hỏi đầu tiên khá tuyệt vời mà bạn có thể nhận được trong cuộc phỏng vấn xin việc, nhà tuyển dụng sẽ kiểm tra kỹ năng của bạn trong việc trình bày ý hiểu về Hibernate là gì. Bạn có thể gặp phải các câu hỏi phỏng vấn Hibernate tương tự đó là những câu hỏi giải thích một khái niệm hoặc định nghĩa một cái gì đó.

Vậy  Hibernate là gì? Hibernatemột khung  framework dựa trên Java. Nó được thiết kế để tạo các ứng dụng dựa trên cơ sở dữ liệu. Một tính năng tuyệt vời của khung framework (cũng là một trong những tính năng chính mà nó được yêu thích) là nó đại diện cho cơ sở dữ liệu dưới dạng các đối tượng. Các đối tượng này sau đó có thể được viết mà không cần bất kỳ kiến ​​thức SQL cụ thể nào. Điều này thật tuyệt vời vì nó giúp các nhà phát triển và lập trình viên tiết kiệm rất nhiều thời gian - một thứ có giá trị rất lớn khi nói đến lập trình! Hibernate cũng có object mapping (ánh xạ đối tượng) sẵn có - điều này giảm thiểu số lượng dòng mã code cần thiết cho các ứng dụng hoạt động. Đây chính là câu trả lời để giúp bạn hiểu Hibernate là gì? Hãy nắm chắc kiến thức căn bản này.

Câu hỏi 2: JPA là gì?

JPI là viết tắt của Java Persistence API. Nó cung cấp một đặc tả để quản lý dữ liệu quan hệ trong ứng dụng. Thông số kỹ thuật Java được xác định với các chú thích trong gói javax.persistence. Sử dụng JPA giúp viết mã code được thực hiện độc lập. Biết được các thuật ngữ được viết tắt nhiều nhất có thể là một điều vô cùng quan trọng mà bạn cần chuẩn bị trong các câu hỏi phỏng vấn Hibernate, chúng sẽ giúp ích rất nhiều.

Câu hỏi 3: Criteria API là gì?

Criteria là một API mạnh mẽ, dễ sử dụng và được sử dụng để truy xuất các thực thể thông qua thành phần đối tượng tiêu chuẩn (criteria).

Câu hỏi 4: 'ORM' là gì?

ORM là từ viết tắt của “object-related Mapping”. Nó nhằm mục đích làm cho thao tác và truy cập dữ liệu đơn giản nhất có thể bằng cách mapping object (đối tượng ánh xạ) theo dữ liệu của chúng. Đó là khái niệm rất cơ bản mà Hibernate được xây dựng dựa trên và có nguồn gốc từ Java (là ngôn ngữ lập trình hướng đối tượng).

Câu hỏi 5: Lợi ích của Hibernate.

Hibernate framework cung cấp rất nhiều lợi ích cho các nhà phát triển và lập trình viên, vì vậy có khá nhiều lợi ích từ việc hiểu rõ Hibernate là gì. Tuy nhiên, đây chỉ là một vài trong số những lợi ích đáng chú ý như: hỗ trợ các chú thích JPA và XML, hướng đối tượng đầy đủ, dễ dàng tích hợp với các khung framework Java khác nhau, tạo khóa tự động.

Câu hỏi 6: Cú pháp để tạo truy vấn SQL là gì?

Để tạo một truy vấn SQL trong Hibernate, bạn sẽ phải sử dụng dòng cú pháp này:

Session.createSQLQuery

Đừng ngạc nhiên nếu bạn nhận được câu hỏi như thế này và các câu hỏi phỏng vấn Hibernate tương tự trong cuộc phỏng vấn xin việc. Cú pháp là một khía cạnh quan trọng của Hibernate, vì vậy bạn buộc phải trả lời nhiều câu hỏi và ví dụ khác nhau liên quan đến nó chứ không chỉ có những câu hỏi nêu định nghĩa như Hibernate là gì?

Câu hỏi 7: ‘dialect’ là gì?

Một dialect (phương ngữ) có thể là một tệp duy nhất hoặc một nhóm các tệp (nhóm các file là trường hợp phổ biến hơn). Các tệp này được sử dụng để kết nối cơ sở dữ liệu Hibernate với lớp Java. Cũng có thể nói rằng phương ngữ giống như “công cụ dịch thuật” của Viking giữa Hibernate và cơ sở dữ liệu cốt lõi của nó.

Câu hỏi 8: Các tài liệu mapping nằm ở đâu trong Hibernate framework?

Tất cả các tài liệu ánh xạ (mapping document) của Hibernate framework đều nằm trong Configuration Interface (Giao diện cấu hình). Giao diện này được sử dụng để lưu trữ các tài liệu được đề cập trước đó và các lệnh cấu hình dành riêng cho vấn đề cho chính framework.

Đây có thể được xem là một trong những câu hỏi phỏng vấn Hibernate mẹo. Hầu hết các nhà tuyển dụng sẽ hỏi câu kiểu như “Giao diện cấu hình được sử dụng trong Hibernate là gì?”. Tuy nhiên, câu hỏi trên liên quan đến các chức năng thực tế của giao diện - bạn phải biết Giao diện cấu hình để có thể trả lời nhanh chóng và chính xác. Vì vậy, hãy cẩn thận hơn với những câu hỏi tương tự như thế này!

Câu hỏi 9: Tăng cường chức năng của các giao diện tích hợp bằng cách thêm các giao diện tùy chỉnh mới như thế nào?

Người dùng có thể sử dụng các  extension interface (giao diện mở rộng) để thêm bất kỳ chức năng cần thiết nào không mà được hỗ trợ bởi các built-in interface (giao diện tích hợp).

Câu 10: Liệt kê ba trong số các thành phần chính của Hibernate.

Ngoài việc hiểu Hibernate là gì ra thì bạn cần phải nắm được các thành phần của framework này. Sẽ có nhiều hơn ba thành phần để lựa chọn, vì vậy đây là câu hỏi thực sự sẽ giúp bạn ăn điểm dễ dàng. Như một ví dụ trong các câu hỏi phỏng vấn Hibernate, bạn có thể trả lời là: session (phiên), configuration (cấu hình) và query (truy vấn).

Câu hỏi 11: Tệp cấu hình Hibernate là gì?

Tệp cấu hình chứa cơ sở dữ liệu về các cấu hình cụ thể và được sử dụng để khởi tạo SessionFactory. Trong tệp cấu hình XML, người dùng cung cấp thông tin cơ sở dữ liệu hoặc thông tin tài nguyên JNDI (Java Naming and Directory Interface - Giao diện đặt tên và giao diện thư mục). Phần quan trọng khác của tệp cấu hình Hibernate là thông tin Dialect. Đây là thông tin cho phép Hibernate biết loại cơ sở dữ liệu, tệp ánh xạ hoặc chi tiết lớp.

Câu hỏi 12: ‘Hibernate Session’ là gì?

Session (phiên) là công cụ chính mà hoạt động cơ sở dữ liệu trong Hibernate framework. Nó là công cụ chính được sử dụng để tạo, phát hành và thực hiện các truy vấn dựa trên SQL và HQL.

Đây là một trong những câu hỏi phỏng vấn Hibernate có thể được giải thích hay nói rằng Phiên trong Hibernate không phải là chuỗi an toàn. Điều này có nghĩa là mọi chuỗi đơn liên quan đến Phiên nên tạo và sử dụng Session instance của chính nó, đảm bảo chuỗi đó sau khi công việc kết thúc.

Câu hỏi 13: Làm thế nào để cấu hình Hibernate?

Bên cạnh hiểu rõ các khái niệm cơ bản như Hibernate Java là gì thì làm thế nào để cấu hình framework này cũng vô cùng quan trọng. Câu trả lời ngay lập tức là có hai cách chính để làm như vậy - sử dụng XML và sau đó là  annotation (chú thích) do Java cung cấp.

Trong các phiên bản Hibernate trước Hibernate 4.0, cách duy nhất để cấu hình Hibernate framework là sử dụng XML. Tùy chọn để làm như vậy với các chú thích dựa trên Java chỉ có sẵn trong các phiên bản 4.0 trở lên. Đó là lý do tại sao bạn nên lắng nghe cẩn thận các câu hỏi phỏng vấn Hibernate mà nhà tuyển dụng đưa ra - họ có chỉ định phiên bản của framework hay không? Họ đang nói về phiên bản nào? Cách trả lời tốt nhất là nêu cả hai phương pháp cấu hình có thể và sau đó trả lời thêm - nhà tuyển dụng có thể sẽ khá ấn tượng đó!

Câu hỏi 14: Thêm một tiêu chí vào truy vấn SQL với cú pháp là gì?

Cú pháp sẽ như sau:

Session.createCriteria

Câu hỏi 15: Hai bộ sưu tập trong Hibernate là gì?

Hai bộ sưu tập của Hibernate được SortedOrder.

Câu hỏi phỏng vấn nâng cao

Như vậy, chúng tôi đã trình bày những điều cơ bản như Hibernate là gì và chắc hẳn bạn đã hiểu phần nào những gì sẽ xảy ra khi bắt đầu cuộc phỏng vấn. Bây giờ, hãy chuyển sang các câu hỏi và câu trả lời nâng cao hơn dành cho các nhà phát triển có kinh nghiệm. Đây là những câu hỏi mà nhà tuyển dụng có thể hỏi để họ có thêm đánh giá về kiến ​​thức của bạn với chủ đề Hibernate trong Java này ngoài những câu hỏi rất cơ bản như Hibernate Java là gì.

Hibernate interview questions - programming on computer

Mặc dù vậy, đừng quá lo lắng - những câu hỏi phỏng vấn Hibernate này được cho là nâng cao hơn vì chúng có thể yêu cầu một câu trả lời sâu hơn hoặc giải thích kỹ hơn ngoài việc trình bày lý thuyết như JPI hay Hibernate là gì.

Câu hỏi 1: Liệt kê một số ưu điểm mà Hibernate có trên JDBC.

JDBC (Java Database Connection) là viết tắt của Kết nối cơ sở dữ liệu Java. Hibernate có khá nhiều lợi thế so với JDBC, với một số điểm đáng chú ý hơn như: không cần tải xuống trình điều khiển mới khi thay đổi cơ sở dữ liệu, hiểu cả SQL và HQL (JDBC chỉ có thể sử dụng SQL), trình điều khiển được tải sẵn, v.v.

Câu hỏi 2: 'SessionFactory' là gì?

Hãy cẩn thận nếu không bạn sẽ nhầm lẫn với Session (Phiên)! SessionFactory cung cấp các phiên bản của Phiên. Tất cả dữ liệu và thông tin không mặc định trên Hibernate trong Java được lưu trong SessionFactory.

Câu hỏi 3: Mục đích của ‘caching’ trong Hibernate là gì?

Trong Hibernate, caching (bộ nhớ đệm) cho phép chạy ứng dụng nhanh hơn nhiều. Bộ nhớ đệm làm giảm số lượng truy vấn cần thiết để chạy ứng dụng thành công, do đó tăng tốc độ và tốc độ hiệu suất.

Câu hỏi 4: Có nên sử dụng POJO trong Hibernate?

Đây là câu hỏi có thể được phân loại vào trong những câu hỏi phỏng vấn Hibernate trong Java kép vì trước tiên bạn sẽ cần biết POJO là gì để trả lời chính xác câu hỏi.

POJO (Plain Old Java Object) là viết tắt của một đối tượng Java cũ đơn giản. Đây là những đối tượng không yêu cầu một đường dẫn cụ thể, do đó không bị hạn chế dưới bất kỳ hình thức, hình dạng hoặc hình thức nào. Bạn nên sử dụng POJO trong các dự án Hibernate của mình - vì chúng sẽ cung cấp mã code hoạt động tốt hơn, trôi chảy hơn khi so sánh với một lớp Java tiêu chuẩn.

Câu hỏi 5: Giải thích ‘persistent classes’ trong Hibernate.

Persistent classes (Các lớp liên tục) là các lớp Java lưu trữ dữ liệu (các đối tượng) của chúng trong các bảng của cơ sở dữ liệu của Hibernate framework. Chúng đặc biệt ở chỗ là cần một hàm tạo để hoạt động như bình thường. Proxy - một số chức năng Hibernate cốt lõi - phụ thuộc rất nhiều vào quy trình làm việc của các lớp liên tục.

Một lời khuyên hữu ích trong các câu hỏi phỏng vấn Hibernate được nhấn mạnh đó là luôn luôn giải thích các câu hỏi, đặc biệt là những câu hỏi nâng cao hơn. Khi làm như vậy, bạn không chỉ thể hiện rằng mình biết câu trả lời, mà còn cho họ thấy là bạn khá am hiểu về chủ đề này. Điều này đặc biệt đúng đối với dạng câu hỏi như này - cố gắng đưa ra một câu trả lời cụ thể, nhưng sau đó mở rộng nó bằng 2-3 câu bổ sung. Nếu làm như vậy, chắc chắn bạn sẽ để lại ấn tượng tốt cho nhà tuyển dụng.

Câu hỏi 6: Có nên sử dụng các mẫu Hibernate mặc định không?

Mặc dù đây có thể được coi là một trong những câu hỏi phỏng vấn Hibernate mang tính chủ quan hơn không như những câu nêu định nghĩa như Hibernate Java là gì, nhưng nhà tuyển dụng có thể đang cố xem bạn có biết những ưu điểm chung của việc sử dụng các mẫu Hibernate hay không.

Một trong những lợi thế của việc sử dụng các mẫu Hibernate là rất nhiều chức năng được tự động hóa hoàn toàn (Đóng phiên, xử lý một số ngoại lệ nhất định) - bạn sẽ phải phát hành và thực hiện chúng theo cách thủ công. Ngoài ra, các mẫu này sẽ đơn giản hóa rất nhiều quá trình sử dụng Hibernate.

Câu hỏi 7: Có thể triển khai ‘Join’ vào Hibernate bằng cách sử dụng SQL không?

Câu trả lời là có - có thể sử dụng cả truy vấn SQL và HQL để triển khai Join vào Hibernate.

Câu hỏi 8: Liệt kê và xác định ba trạng thái của các đối tượng trong Hibernate.

Đây được xem là một trong những câu hỏi phỏng vấn Hibernate mở rộng, tổng cộng có ba trạng thái đối tượng - detached, persistenttransient.

Các đối tượng trở nên detached (tách rời) sau khi phiên được đóng bởi nhà phát triển. Các đối tượng tách rời sau đó có thể biến thành các đối tượng ổn định với các phương thức thích hợp được kích hoạt. Các đối tượng persistent (liên tục) là những đối tượng đang mở - chúng xảy ra bất cứ khi nào bạn lưu hoặc truy xuất một số trường hợp nhất định từ cơ sở dữ liệu Hibernate. Các đối tượng transient (không ổn định) là những “đối tượng lẻ” - vừa được tạo và chưa được phân biệt bởi một Phiên cụ thể.

Câu hỏi 9: Nêu tên bộ nhớ đệm mặc định trong Hibernate.

Bộ nhớ đệm mặc định của Hibernate framework là EHCache.

Udacity Review Logo
Ưu điểm
  • Thiết kế đơn giản (không có thông tin không cần thiết)
  • Khóa học chất lượng cao (ngay cả khóa miễn phí)
  • Đa dạng tính năng
Tính năng chính
  • Chương trình nanodegree
  • Phù hợp với doanh nghiệp
  • Chứng chỉ hoàn thành trả phí
Udemy Logo
Ưu điểm
  • Đa dạng nhiều khóa học
  • Dễ điều hướng
  • Không có vấn đề kỹ thuật
Tính năng chính
  • Đa dạng nhiều khóa học
  • Chính sách hoàn tiền trong 30 ngày
  • Chứng chỉ hoàn thành miễn phí
Udacity Review Logo
Ưu điểm
  • Dễ sử dụng
  • Cung cấp nội dung chất lượng
  • Minh bạch giá cả
Tính năng chính
  • Chứng chỉ miễn phí sau hoàn thành
  • Tập trung vào các kỹ năng khoa học dữ liệu
  • Thời gian học tập linh hoạt

Câu hỏi 10: Lợi ích chính của plugin Eclipse là gì?

Plugin giúp các nhà phát triển viết và quản lý các tệp một cách dễ dàng hơn nhiều khi so sánh với các phương thức Hibernate mặc định.

Kết luận

Như vậy, chúng tôi đã đề cập đến cả những điều cơ bản như Hibernate là gì và những câu hỏi phỏng vấn Hibernate trong Java cho các nhà phát triển và lập trình viên có kinh nghiệm. Với hướng dẫn này, tôi hy vọng bạn đã có nắm được những câu hỏi từ cơ bản đến nâng cao trong cuộc phỏng vấn việc làm Hibernate. Hãy nhớ rằng - Có công mài sắt có ngày nên kim! Cố gắng đừng căng thẳng quá nhiều và chỉ đơn giản là học - điều đó sẽ tăng cơ hội vô cùng lớn để có được vị trí công việc đáng mơ ước.

hibernate interview questions - glowing keyboard

Với kiến ​​thức về Hibernate là gì, cách sử dụng Hibernate thì bạn vừa có thể tăng cơ hội có được một công việc lương cao và hỗ trợ bản thân trong các dự án cá nhân trong tương lai. Hiển nhiên là đại đa số những người học Hibernate sẽ làm như vậy bởi vì họ muốn kiếm được công việc tuyệt vời đó. Và tại sao họ không làm như vậy chứ! Một mức lương ổn định ở mức trên trung bình, điều kiện làm việc tuyệt vời, cơ hội nghề nghiệp trong tương lai - ai sẽ không muốn điều đó?

Để lại phản hồi chân thật của bạn

Hãy để lại ý kiến xác thực của bạn & giúp hàng nghìn người chọn được nền tảng học online tốt nhất. Tất cả phản hồi, dù tích cực hay tiêu cực, đều được chấp nhận miễn là chúng trung thực. Chúng tôi không công khai phản hồi thiên vị hoặc thư rác. Vì vậy, nếu bạn muốn chia sẻ kinh nghiệm, ý kiến hoặc đưa ra lời khuyên - phần này dành cho bạn!

Đánh giá của người dùng gần đây

Hài lòng

Mình hài lòng với bài viết vì mình hiểu rõ hơn hibernate bằng cách hệ thống hóa kiến thức qua các câu hỏi và trả lời.

Được

Cũng được, có nhiều thông tin cần thiết và bổ ích, một tài liệu tham khảo tuyệt vời.

Tốt

Hướng dẫn khá tốt vì đề cập đến một khung framework và phục vụ tốt cho những ai học phát triển Java.

Được

Được, cung cấp kiến thức bổ ích cho người học java và hibernate.

OK

Rất OK, bạn mình giới thiệu hướng dẫn này cho mình và mình đã đọc và thấy đây là bài viết ổn, tốt.

Tốt

Tốt, về mặt nội dung và hình thức trình bày từ cơ bản đến nâng cao, mọi người tham khảo xem nhé.

Rất tốt

Thầy mình bảo đây là một trong những tài liệu tham khảo về java cũng như hibernate rất tốt, vì mọi kiến thức đưa ra khá chuẩn và cách trình bày dễ hiểu, dễ theo dõi.

Tốt

Theo mình nghĩ, đây là một hướng dẫn khá tốt, vì đề cập nhiều khía cạnh của hibernate mà bất kì ai học java cũng cần biết.

Thú vị

Hướng dẫn khá là thú vị, được trình bày dưới dạng các câu hỏi và trả lời từ cơ bản đến nâng cao, cho bạn cái nhìn tổng quan khá tốt.

OK

Bài viết OK, có nhiều thông tin cần thiết và bổ ích cho những ai học java.

Khá tốt

Bài viết được trình bày khá tốt, từ các câu hỏi cơ bản đến nâng cao, câu trả lời tuy ngắn gọn, nhưng đúng và đủ ý, phù hợp với người dùng java có kinh nghiệm.

Khá ổn

Bài viết khá là ổn, và tốt của BitDegree, nhưng mình muốn bài viết chuyên sâu hơn về hibernate, bạn nào biết có bài nào không?

OK

Cũng OK, có một số thuật ngữ khó mà mình nghĩ có lẽ sẽ không phù hợp với những ai chưa biết gì về java và hibernate.

Ổn

Khá là ổn về mặt nội dung, được trình bày rõ ràng, dễ theo dõi và mạch lạc.

Tốt

Cách trình bày kiến thức dưới dạng các câu hỏi phỏng vấn và câu trả lời giúp người đọc theo dõi thông tin một cách chủ động và dễ nhớ hơn.

OK

Đây là một trong những bài viết khá là OK trong những bài theo dạng câu hỏi phỏng vấn - và câu trả lời tương đối súc tích và hữu ích.

Khá được

Khá được và hữu ích cho một người đang cần chuẩn bị các kiến thức để đi phỏng vấn về java trong thời gian tới :D.

Rất OK

Một chủ đề khá hay và bài viết rất tốt về một trong những khung framework cho java developer.

Khá hay

Hướng dẫn khá hay vì nó đề cập đến một trong nhưng khung làm việc khá phổ biến cho người dùng java mà ai học ngôn ngữ này cũng nên biết.

Hài lòng

Khá hài lòng với hướng dẫn này vì giúp mình hệ thống hóa kiến thức theo cách khá là tốt trước buổi phỏng vấn tuần trước.

Câu hỏi thường gặp

Cách chọn trang khóa học trực tuyến nào để đánh giá như thế nào?

Chúng tôi chọn các nền tảng học online theo quy mô thị trường, mức độ phổ biến của chúng và quan trọng nhất là yêu cầu hoặc sở thích chung của người dùng để đọc các bài đánh giá MOOC chân thật về một số nền tảng học online nhất định.

Bạn cần nghiên cứu nhiều như thế nào trước khi viết đánh giá e-learning?

Các chuyên gia MOOC tận tâm của chúng tôi thực hiện nghiên cứu trong nhiều tuần - chỉ sau đó mới có thể nói rằng các đánh giá của họ về các khía cạnh khác nhau là cuối cùng và hoàn chỉnh. Mặc dù mất rất nhiều thời gian, nhưng đây là cách duy nhất chúng tôi có thể đảm bảo rằng tất cả các tính năng thiết yếu của nền tảng học online đều được thử nghiệm và kiểm tra và phán quyết dựa trên dữ liệu thực.

Khía cạnh nào là quan trọng nhất khi chọn nền tảng học online tốt nhất?

Sẽ không đúng nếu chỉ chọn một khía cạnh trong số lựa chọn: các ưu tiên phụ thuộc vào từng cá nhân, giá trị, mong muốn và mục tiêu của họ. Một tính năng quan trọng đối với một người có thể hoàn toàn không liên quan đến người kia. Nhưng dù sao, tất cả người dùng sẽ đồng ý rằng chất lượng tốt của tài liệu học tập là điều bắt buộc đối với các nền tảng học online.

Nền tảng đánh giá e-learning này khác với những cái khác như thế nào?

Mỗi nền tảng đánh giá MOOC là duy nhất và có các mục tiêu và giá trị riêng. Các bài đánh giá e-learning của chúng tôi là chân thực 100% và được viết sau khi thực hiện phân tích cẩn thận. Đó là mục tiêu mà rất nhiều trang đánh giá e-learning còn thiếu, vì vậy chúng tôi coi đó là siêu năng lực của mình!

Ngày
Giờ
Phút
Giây