Spring DB Phần 2 - Kỹ thuật sử dụng truy cập dữ liệu

Bạn có thể sử dụng và hoàn thiện các kỹ thuật truy cập dữ liệu DB cần thiết cho việc phát triển backend. Bạn có thể hiểu được nguyên lý và cấu trúc của các kỹ thuật truy cập Spring DB, từ đó phát triển thành một nhà phát triển backend chuyên sâu hơn.

(5.0) 669 đánh giá

16,876 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

Spring
Spring
MVC
MVC
spring-jpa
spring-jpa
JPA
JPA
querydsl
querydsl
Spring
Spring
MVC
MVC
spring-jpa
spring-jpa
JPA
JPA
querydsl
querydsl

Đánh giá từ những học viên đầu tiên

Đánh giá từ những học viên đầu tiên

5.0

5.0

gusdn85554

98% đã tham gia

Xin chào Younghan! Tôi bắt đầu học vào tháng 7 năm ngoái, và sau 1 năm 4 tháng, cuối cùng tôi đã nghe được hết bài giảng của Younghan (không bao gồm bài giảng khởi động). Trong khi nghe từng bài giảng, tôi nghe DB phần 2 và quyết định viết một bài thích hợp. đánh giá khóa học, và cuối cùng tôi đã có thể viết nó. Tôi nghĩ rằng tôi đã có thể trưởng thành cho đến bây giờ nhờ nghe các bài giảng của Younghan khi tôi không biết gì về nghiên cứu phát triển với tư cách là một sinh viên không chuyên ngành. Tôi đã thực hiện một số dự án thông qua các bài giảng và đã nghiên cứu những điều tôi còn thiếu trong CS thông qua nghiên cứu. Spring, Jpa, tôi muốn kể cho các bạn nghe về đặc điểm các buổi giảng của Younghan, người đã tham dự tất cả các buổi giảng. Để tôi kể cho bạn nghe đặc điểm trong bài giảng của Younghan: Anh ấy dạy bạn từng bước, bắt đầu từ bước 1 để học 5 bước. Nếu bạn biết bước 5 mà không biết bước 1 đến 3, bạn có thể tìm hiểu lý do tại sao bước 5 lại như vậy bằng cách học các bước 1 đến 3 qua bài giảng. Mình luôn nghe về nó mà không biết nên luôn ngạc nhiên khi thấy code ngày càng phát triển, nghĩ rằng công nghệ đã phát triển rất nhiều (Sở dĩ có công nghệ mới là vì có những công nghệ trong quá khứ). Và tôi nghĩ các bài giảng của Younghan sẽ hiệu quả hơn nếu bạn xem chúng nhiều lần. Ví dụ: nếu bạn nghe bài giảng Spring Basics rồi đến Spring MVC rồi học lại Spring Basics, góc nhìn của bạn sẽ rộng hơn so với lần đầu tiên bạn nghe nó. Vì vậy, tôi nghĩ rằng tôi đã học JPA cơ bản 2-3 lần (vì nó khó). Nếu bạn đang xem xét bài giảng của Younghan, tôi hy vọng bạn sẽ đọc bài viết này và suy nghĩ về nó. Ồ, và cuối cùng, cảm ơn những người ủng hộ chúng tôi rất nhiều vì đã trả lời QnA! Nếu tôi không biết điều gì đó, tôi luôn tìm cách giải quyết thông qua Google hoặc QnA. Chúc mọi người may mắn! Cảm ơn bạn đã đọc bài viết dài này.

5.0

선한영향력주는개발자되기

100% đã tham gia

Xin chào. giáo sư. Tôi cũng đã hoàn thành bài giảng này. Tôi đã theo lộ trình khoảng một năm bằng cách giảng bài sau giờ làm việc và cuối tuần, và giờ chỉ còn lại chương cuối cùng của đêm chung kết. Luôn lắng nghe các bài giảng để mọi người có thể hiểu được nền tảng của công nghệ và lý do tại sao nó được sử dụng. Cảm ơn bạn rất nhiều vì đã giải thích nó một cách dễ dàng và cố gắng truyền đạt ít nhất một điều nữa. Đôi khi, khi đang xem bài giảng, tôi nhìn vào thời gian trên máy tính của giáo sư. Đôi khi nó hiện ra dưới dạng số và đôi khi nó hiện ra dưới dạng đồng hồ, vì vậy tôi tự hỏi liệu họ có cố tình giấu nó không LOL Dù sao đi nữa, khi tôi xem các bài giảng được thực hiện vào nhiều thời điểm khác nhau từ tối sớm đến sáng sớm, giáo sư. đã làm việc rất chăm chỉ để có được những bài giảng hay, vậy tại sao tôi lại làm việc chăm chỉ như vậy? Tôi cũng đã suy ngẫm rất nhiều. Anh ấy đã giảng dạy hay và đưa ra lời khuyên hào phóng với tư cách là một nhà phát triển cấp cao, vì vậy đó là một năm mà tôi không chỉ học được các kỹ năng kỹ thuật mà còn có được động lực trong cuộc sống. Tôi nghĩ chúng ta sẽ có thể duy trì tốt hệ thống này và phát triển nó một cách vui vẻ trong tương lai. Cảm ơn

5.0

웃자

100% đã tham gia

Thành thật mà nói, những ai chưa biết nội dung Spring DB Phần 1 và 2 đều đang xây dựng một lâu đài trên chính suy nghĩ của mình. Nếu bạn chưa rõ mục lục, vui lòng đọc nó! nghe hai lần

Bạn sẽ nhận được điều này sau khi học.

  • Nguyên lý nội tại của việc sử dụng DB thông qua Spring

  • Các phương thức khác nhau để sử dụng DB thông qua Spring

  • Công nghệ truy cập DB trong Spring

Những kỹ thuật truy cập dữ liệu Spring mà lập trình viên Backend nhất định phải biết
Kỹ thuật truy cập dữ liệu Spring Phần 2

📣 Vui lòng kiểm tra!
Khóa học này là bài giảng thứ 7 trong series Chinh phục hoàn toàn Java Spring. Vui lòng kiểm tra lộ trình Chinh phục hoàn toàn Spring của Kim Young-han, Giám đốc kỹ thuật trẻ nhất tại Woowa Brothers trước.
• Link lộ trình: https://www.inflearn.com/roadmaps/373 (Nhấp để đi tới)

Spring DB của Kim Young-han
Hoàn thiện kỹ thuật truy cập dữ liệu

Để phát triển ứng dụng web backend một cách bài bản, bạn cần hoàn thiện hai trụ cột lớn: MVC dựa trên HTTP và công nghệ truy cập dữ liệu dựa trên DB. Thông qua các bài giảng trước, chúng ta đã hoàn thiện phần HTTP và Spring MVC, vì vậy bây giờ là lúc để hoàn thiện trụ cột còn lại là công nghệ truy cập dữ liệu Spring DB.

✅ Vui lòng kiểm tra kiến thức tiên quyết.

Vui lòng xác nhận xem bạn đã hiểu nguyên lý và cấu trúc của Spring DB thông qua bài giảng trước là <Spring DB phần 1> hay chưa.

1. Hiểu các nguyên lý cơ bản của công nghệ truy cập dữ liệu Spring
2. Trực tiếp phát triển bằng mã nguồn được sử dụng trong thực tế


Thông qua khóa học Spring DB phần 1, chúng ta đã hiểu được các nguyên lý cốt lõi và cấu trúc của công nghệ truy cập DB. Trong phần Spring DB phần 2 này, dựa trên nền tảng của phần 1, chúng ta sẽ học hỏi nhiều kỹ thuật ứng dụng đa dạng và cần thiết cho thực tế. Phần 2 được chia làm 3 phần chính.

1) Hiểu về các công nghệ truy cập dữ liệu đa dạng

Bạn sẽ được học các công nghệ truy cập dữ liệu đa dạng thường được sử dụng trong thực tế như JdbcTemplate, MyBatis, JPA, Spring Data JPA và Querydsl thông qua việc phát triển dần dần các ví dụ thực tiễn. Qua quá trình này, bạn có thể hiểu một cách tự nhiên lý do tại sao mỗi công nghệ lại cần thiết, cũng như ưu nhược điểm của từng loại thông qua việc trực tiếp viết mã nguồn.

2) Công nghệ truy cập dữ liệu và kiểm thử

Công nghệ truy cập dữ liệu cuối cùng được sử dụng cho mục đích quản lý dữ liệu trong cơ sở dữ liệu. Do đó, cần phải kiểm tra xem công nghệ truy cập dữ liệu có thể lưu trữ và truy vấn dữ liệu trong cơ sở dữ liệu thực tế một cách chính xác hay không. Trong bài giảng, tôi sẽ giải thích từng bước về cách thực hiện kiểm tra tốt nhất trong tình huống kết nối với cơ sở dữ liệu.

3) Hiểu sâu về Spring Transaction

Trong phần 1 của Spring DB, chúng ta đã tìm hiểu lý do tại sao các tính năng giao dịch (transaction) do Spring cung cấp lại cần thiết và nguyên lý hoạt động bên trong của chúng. Trong phần này, chúng ta sẽ học về Spring Transaction một cách chuyên sâu và tìm hiểu các phương án ứng dụng trong thực tế.

  • Những lưu ý thực tế khi sử dụng Transaction AOP
  • Các tùy chọn đa dạng của Spring Transaction
  • Xử lý ngoại lệ và nguyên lý nội bộ của việc commit và rollback trong Spring Transaction
  • Các tùy chọn lan truyền transaction và phương thức hoạt động nội bộ

Mục tiêu khóa học

  • Mục tiêu: Mục tiêu của khóa học này là hoàn thiện các kỹ thuật truy cập dữ liệu DB khổng lồ cần thiết khi phát triển các ứng dụng backend thực tế.
  • Từ cơ bản đến thực tiễn: Mặc dù có nhiều nội dung dành cho việc phát triển thực tế, nhưng khóa học được cấu trúc theo từng bước để ngay cả những nhà phát triển chưa có kinh nghiệm phát triển ứng dụng web cũng có thể thích nghi được. Lưu ý rằng bạn nên học phần 1 của Spring DB trước khi học phần 2 của Spring DB.
  • Tập trung vào ví dụ thực tế: Thông qua các ví dụ, bạn sẽ được học một cách tự nhiên các kỹ thuật truy cập dữ liệu cần thiết khi phát triển ứng dụng backend bằng Spring trong thực tế, đồng thời tôi sẽ truyền đạt cho bạn những Best Practice trong công việc thực tiễn.
  • Sự súc tích: Tôi đã mạnh dạn loại bỏ những tính năng cũ không còn được sử dụng trong thực tế. Tôi tập trung giải thích những nội dung chủ yếu được sử dụng trong thực tiễn hiện nay.

Nội dung bài giảng

Công nghệ truy cập dữ liệu - JdbcTemplate

Khi sử dụng SQL trực tiếp, JdbcTemplate do Spring cung cấp là một lựa chọn tốt. Công nghệ này giúp việc sử dụng JDBC trở nên rất thuận tiện. Ngoài ra, nó còn xử lý thay hầu hết các tác vụ lặp đi lặp lại phát sinh khi sử dụng JDBC trực tiếp.
* Nhà phát triển chỉ cần viết SQL, định nghĩa các tham số truyền vào và mapping giá trị phản hồi.
* Bằng cách áp dụng JdbcTemplate vào một ứng dụng web thực tế đang hoạt động, bạn sẽ hiểu được ưu và nhược điểm của công nghệ này.

Công nghệ truy cập dữ liệu - MyBatis

MyBatis cung cấp nhiều tính năng hơn so với JdbcTemplate đã giải thích trước đó. Điểm hấp dẫn nhất của MyBatis so với JdbcTemplate là bạn có thể viết SQL trong tệp XML một cách thuận tiện và viết các câu truy vấn động (dynamic query) cực kỳ dễ dàng. Trong bài giảng, bạn có thể hiểu được ưu và nhược điểm của công nghệ này thông qua việc trực tiếp áp dụng MyBatis vào mã nguồn của một ứng dụng web đang hoạt động thực tế.

Công nghệ truy cập dữ liệu - JPA

Spring và JPA là những công nghệ chủ chốt trong thị trường Java Enterprise (doanh nghiệp). Nếu Spring cung cấp các tính năng đa dạng cho toàn bộ ứng dụng bao gồm cả DI container, thì JPA cung cấp công nghệ truy cập dữ liệu ORM. JPA cũng đồ sộ và có lượng kiến thức cần học nhiều như Spring, nhưng một khi đã học được, bạn có thể đạt được sự cải thiện rất lớn về năng suất trong công nghệ truy cập dữ liệu. Tại đây, chúng ta sẽ tìm hiểu về các tính năng cơ bản của các công nghệ này, lý do tại sao nên sử dụng chúng, ưu nhược điểm của từng loại và cái nhìn tổng quan nhất.

Công nghệ truy cập dữ liệu - Spring Data JPA

Spring Data JPA là công nghệ giúp sử dụng JPA một cách thuận tiện hơn. Nói một cách đơn giản, vì nó cung cấp tất cả các chức năng CRUD cơ bản nên có thể giảm thiểu một cách đột phá lượng mã nguồn mà nhà phát triển phải viết. Trong bài giảng, bạn có thể hiểu được ưu và nhược điểm của công nghệ này thông qua việc trực tiếp áp dụng Spring Data JPA vào một ứng dụng web đang hoạt động thực tế bằng mã code.

Công nghệ truy cập dữ liệu - Querydsl

JPA khó xử lý các truy vấn phức tạp hoặc truy vấn động. Sử dụng Querydsl có thể giải quyết những vấn đề này một cách rất tiện lợi. Đây là công nghệ được đề xuất mà bạn nhất định phải sử dụng nếu dùng JPA trong thực tế. Trong bài giảng, bạn có thể hiểu được ưu nhược điểm của công nghệ này thông qua việc trực tiếp áp dụng Querydsl vào mã nguồn của một ứng dụng web đang hoạt động thực tế.

Công nghệ truy cập dữ liệu - Kiểm thử

Công nghệ truy cập dữ liệu cuối cùng được sử dụng cho mục đích quản lý dữ liệu trong cơ sở dữ liệu. Do đó, cần phải kiểm tra xem công nghệ truy cập dữ liệu có thể lưu trữ và truy vấn dữ liệu vào cơ sở dữ liệu thực tế một cách chính xác hay không. Trong bài giảng, tôi sẽ giải thích từng bước về cách thực hiện kiểm thử tốt nhất trong tình huống kết nối với cơ sở dữ liệu. Ví dụ, tôi sẽ giải thích cách cấu hình các bài kiểm thử kết nối với cơ sở dữ liệu và tìm hiểu thông qua mã nguồn về cách thức hoạt động của @Transactional cũng như DB chế độ nhúng (embedded mode).

Hiểu về Spring Transaction

Trong DB phần 1, chúng ta đã tìm hiểu lý do tại sao các tính năng giao dịch (transaction) do Spring cung cấp lại cần thiết và nguyên lý hoạt động bên trong của chúng. Trong phần này, chúng ta sẽ tìm hiểu sâu và chi tiết về các tính năng đa dạng mà Spring Transaction cung cấp, chẳng hạn như những lưu ý thực tế khi sử dụng Spring Transaction AOP, các tùy chọn khác nhau của Spring Transaction, và nguyên lý nội bộ về việc Spring Transaction được commit hoặc rollback khi có ngoại lệ xảy ra.

Lan truyền giao dịch Spring (Spring Transaction Propagation)

Chúng tôi sẽ đi sâu vào chi tiết về lan truyền transaction (transaction propagation) trong Spring. Bạn sẽ được tìm hiểu lý do tại sao cần lan truyền transaction, các tùy chọn lan truyền khác nhau, cách xử lý ngoại lệ theo từng tùy chọn, và những lưu ý quan trọng khi sử dụng các tùy chọn lan truyền transaction trong thực tế.


Một lời từ người chia sẻ kiến thức
Kim Young-han

Các nhà phát triển backend nhất định phải hoàn thiện hai trụ cột lớn là MVC và công nghệ truy cập DB. Tôi sẽ giúp các bạn hoàn thiện hai trụ cột này để có thể phát triển thành một nhà phát triển backend vững chắc. Xin cảm ơn.


Lộ trình bài giảng


Lộ trình liên quan

Series Chinh phục hoàn toàn Spring 
Bắt đầu với Spring một cách thông minh, từ nguyên lý cốt lõi đến vận dụng thực tế
Chinh phục hoàn toàn thực hành Spring Boot + JPA 
Học tập thông qua việc tạo ứng dụng web với các công nghệ thực tế mới nhất  Giai đoạn thực hành chuyên sâu 

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà phát triển muốn tiếp cận DB và quản lý dữ liệu thông qua Spring

  • Người chuẩn bị xin việc lập trình viên

  • Nhà phát triển đang làm việc muốn hiểu sâu về công nghệ truy cập Spring DB

  • Nhà phát triển muốn tạo ứng dụng web bằng Spring

Cần biết trước khi bắt đầu?

  • Ngôn ngữ Java

  • Kiến thức cơ bản về Spring

  • Kiến thức cơ bản về DB

Xin chào
Đây là yh

583,709

Học viên

40,559

Đánh giá

9,078

Trả lời

5.0

Xếp hạng

26

Các khóa học

Mục tiêu của tôi là đào tạo để bạn có thể trở thành một nhà phát triển thực thụ, cần thiết cho công việc thực tế. developer.

 

Câu chuyện về cuộc đời phát triển phần mềm của tôi

Video phỏng vấn EO

Gae-bal-ba-dak - Chàng trai nông thôn trở thành vua lập trình

Giải quyết những trăn trở về việc tìm việc và chuyển việc

 

Thêm

Chương trình giảng dạy

Tất cả

88 bài giảng ∙ (13giờ 59phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

669 đánh giá

5.0

669 đánh giá

  • chlxogns928264님의 프로필 이미지
    chlxogns928264

    Đánh giá 17

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Thật tuyệt vời :) Đây là bài giảng hay nhất. Tôi đã học được rất nhiều điều khi nghe các bài giảng và đang áp dụng nó rất tốt vào thực tế. Tôi dự định tham gia các bài giảng thực tế và mong chờ các bài giảng về Spring Boot.

    • yh
      Giảng viên

      Cảm ơn Hoon vì đã chăm chú lắng nghe. Chiến đấu đến cùng.

  • ho2ast님의 프로필 이미지
    ho2ast

    Đánh giá 14

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Xin chào. giáo sư. Tôi cũng đã hoàn thành bài giảng này. Tôi đã theo lộ trình khoảng một năm bằng cách giảng bài sau giờ làm việc và cuối tuần, và giờ chỉ còn lại chương cuối cùng của đêm chung kết. Luôn lắng nghe các bài giảng để mọi người có thể hiểu được nền tảng của công nghệ và lý do tại sao nó được sử dụng. Cảm ơn bạn rất nhiều vì đã giải thích nó một cách dễ dàng và cố gắng truyền đạt ít nhất một điều nữa. Đôi khi, khi đang xem bài giảng, tôi nhìn vào thời gian trên máy tính của giáo sư. Đôi khi nó hiện ra dưới dạng số và đôi khi nó hiện ra dưới dạng đồng hồ, vì vậy tôi tự hỏi liệu họ có cố tình giấu nó không LOL Dù sao đi nữa, khi tôi xem các bài giảng được thực hiện vào nhiều thời điểm khác nhau từ tối sớm đến sáng sớm, giáo sư. đã làm việc rất chăm chỉ để có được những bài giảng hay, vậy tại sao tôi lại làm việc chăm chỉ như vậy? Tôi cũng đã suy ngẫm rất nhiều. Anh ấy đã giảng dạy hay và đưa ra lời khuyên hào phóng với tư cách là một nhà phát triển cấp cao, vì vậy đó là một năm mà tôi không chỉ học được các kỹ năng kỹ thuật mà còn có được động lực trong cuộc sống. Tôi nghĩ chúng ta sẽ có thể duy trì tốt hệ thống này và phát triển nó một cách vui vẻ trong tương lai. Cảm ơn

    • yh
      Giảng viên

      Kính gửi Nhà phát triển Ảnh hưởng Tốt, cảm ơn bạn vì đã luôn chăm chú lắng nghe và thường xuyên để lại các bài đánh giá bài giảng. Nói rằng chúng tôi đã ở bên nhau được một năm khiến điều đó càng đáng mừng hơn vì tôi cảm thấy như chúng tôi đã cùng nhau làm được điều gì đó. Gần đây, tôi ngày càng sử dụng ít thời gian hơn để có thể tập trung hơn vào bài giảng vì thỉnh thoảng các sinh viên vẫn nói chuyện với tôi. ^^

  • impati0716님의 프로필 이미지
    impati0716

    Đánh giá 11

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Tôi đang học hỏi rất nhiều. Cảm ơn bạn luôn

    • yh
      Giảng viên

      Choi Jun-young, tôi cảm thấy được khen thưởng vì đã chăm chú lắng nghe ^^ Cảm ơn bạn ^^

  • gusdn855542301님의 프로필 이미지
    gusdn855542301

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    98% đã tham gia

    Xin chào Younghan! Tôi bắt đầu học vào tháng 7 năm ngoái, và sau 1 năm 4 tháng, cuối cùng tôi đã nghe được hết bài giảng của Younghan (không bao gồm bài giảng khởi động). Trong khi nghe từng bài giảng, tôi nghe DB phần 2 và quyết định viết một bài thích hợp. đánh giá khóa học, và cuối cùng tôi đã có thể viết nó. Tôi nghĩ rằng tôi đã có thể trưởng thành cho đến bây giờ nhờ nghe các bài giảng của Younghan khi tôi không biết gì về nghiên cứu phát triển với tư cách là một sinh viên không chuyên ngành. Tôi đã thực hiện một số dự án thông qua các bài giảng và đã nghiên cứu những điều tôi còn thiếu trong CS thông qua nghiên cứu. Spring, Jpa, tôi muốn kể cho các bạn nghe về đặc điểm các buổi giảng của Younghan, người đã tham dự tất cả các buổi giảng. Để tôi kể cho bạn nghe đặc điểm trong bài giảng của Younghan: Anh ấy dạy bạn từng bước, bắt đầu từ bước 1 để học 5 bước. Nếu bạn biết bước 5 mà không biết bước 1 đến 3, bạn có thể tìm hiểu lý do tại sao bước 5 lại như vậy bằng cách học các bước 1 đến 3 qua bài giảng. Mình luôn nghe về nó mà không biết nên luôn ngạc nhiên khi thấy code ngày càng phát triển, nghĩ rằng công nghệ đã phát triển rất nhiều (Sở dĩ có công nghệ mới là vì có những công nghệ trong quá khứ). Và tôi nghĩ các bài giảng của Younghan sẽ hiệu quả hơn nếu bạn xem chúng nhiều lần. Ví dụ: nếu bạn nghe bài giảng Spring Basics rồi đến Spring MVC rồi học lại Spring Basics, góc nhìn của bạn sẽ rộng hơn so với lần đầu tiên bạn nghe nó. Vì vậy, tôi nghĩ rằng tôi đã học JPA cơ bản 2-3 lần (vì nó khó). Nếu bạn đang xem xét bài giảng của Younghan, tôi hy vọng bạn sẽ đọc bài viết này và suy nghĩ về nó. Ồ, và cuối cùng, cảm ơn những người ủng hộ chúng tôi rất nhiều vì đã trả lời QnA! Nếu tôi không biết điều gì đó, tôi luôn tìm cách giải quyết thông qua Google hoặc QnA. Chúc mọi người may mắn! Cảm ơn bạn đã đọc bài viết dài này.

    • yh
      Giảng viên

      gusdn85554, bạn hiểu rõ các bước. Và như bạn đã nói, việc xem xét lại thực sự quan trọng. Chúc mừng!

  • ballgaveship1247님의 프로필 이미지
    ballgaveship1247

    Đánh giá 13

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Thành thật mà nói, những ai chưa biết nội dung Spring DB Phần 1 và 2 đều đang xây dựng một lâu đài trên chính suy nghĩ của mình. Nếu bạn chưa rõ mục lục, vui lòng đọc nó! nghe hai lần

    • yh
      Giảng viên

      Uzza, cảm ơn bạn đã chăm chú lắng nghe!!

Khóa học khác của yh

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

2.085.060 ₫