Spring boot 3 tutorial for beginners: connect to database with Spring JPA and create CRUD API

Ғылым және технология

Spring boot 3 tutorial for beginners:
Connect database with Spring JPA and create CRUD API
Link Github to download source code:
github.com/devteria/identity-...
Branch: course/create-crud-api
Support me:
www.buymeacoffee.com/devteria
#Java #Springboot3 #jpa #crud

Пікірлер: 74

  • @lnthsama
    @lnthsama5 күн бұрын

    Cảm ơn anh bài giảng rất chi tiết 🌹

  • @nvtentertainment4098
    @nvtentertainment4098Ай бұрын

    Rất hay, nếu anh có ra khóa nâng cao dự án thực tế em cũng sẽ mua ủng hộ, nhất là phần Microservice

  • @hieuphamba1211
    @hieuphamba12113 ай бұрын

    Rất dễ hiểu

  • @huuquocdattran2877
    @huuquocdattran2877Ай бұрын

    theo quan điểm cá nhân của mình thì nên biết JDBC và SQL trước khi vào học JPA vì sau này đường nào cũng phải đụng SQL khi gặp các truy vấn phức tạp

  • @HuyHoang-dz7qj
    @HuyHoang-dz7qj3 ай бұрын

    Tuyệt vời quá anh ơi em đã khóc khi anh ra list này mãi yêu anh

  • @devteriadotcom

    @devteriadotcom

    3 ай бұрын

    Anh đã gớt nước mắt khi thấy comment này :))

  • @thaitrongtin3737

    @thaitrongtin3737

    Ай бұрын

    @@devteriadotcom em đã khóc khi tìm thấy 2 comment nàyyyyy

  • @theanhnguyenmgt
    @theanhnguyenmgtАй бұрын

    Mong anh ra một video giải thích về cấu trúc của một dự án spring boot trong thực tế ạ

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    Kiến trúc trong video là đã follow the best practice em có thể áp dụng vào project thực tế. Anyway anh sẽ làm một video về cấu trúc một project spring boot, thanks em.

  • @nghiabuivan5560
    @nghiabuivan55603 ай бұрын

    Nice

  • @nguyenvanlong9492
    @nguyenvanlong9492Ай бұрын

    cảm ơn Pro

  • @dianadev1702

    @dianadev1702

    Ай бұрын

    có phải Long - Nam Định không?

  • @tmyker
    @tmyker3 ай бұрын

    Hi anh, lại là em đây, cũng như lần trước video của anh rất dễ hiểu và rõ ràng, anh cứ làm tiếp như z thì tuyệt lắm, nhưng mà còn vài chỗ anh có thể giải thích thêm Bean là gì và khi nào dùng anotaion @Bean khi nào dùng @Autowired cũng như giải thích sơ về các loại anotation được không anh, cảm ơn vì list video vô cùng bổ ích ạ >:

  • @devteriadotcom

    @devteriadotcom

    3 ай бұрын

    Hi em, hôm nào anh sẽ làm một video khác nói rõ về các annotation này, stay tuned.

  • @tmyker

    @tmyker

    3 ай бұрын

    @@devteriadotcom cảm ơn anh 🙆

  • @letuanthanh677
    @letuanthanh677Ай бұрын

    cảm ơn anh, series rất hay , giải thích dễ hiểu. Anh có thể làm thêm một vài video về truy vấn phức tạp sử dụng QueryDSL, và Concurrency Control trong spring boot ko ạ

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    Anh sẽ làm series chuyên sâu về JPA, nhưng giờ thì đang tập trung vào series microservices trước em nhé.

  • @cuongo3590
    @cuongo3590Ай бұрын

    anh ơi khi hàm save bên repo trả về 1 object User thì sang service mình có phải convert nó sang 1 object UserResponse không ạ ?

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    Service trả về dto chứ không phải entity do đó best practice là em phải convert từ entity sang dto để trả về. Giữ theo rule thì sau này em sẽ thấy easy hơn rất nhiều còn không sau này càng lúc sẽ càng rối.

  • @tuanoan326
    @tuanoan32618 күн бұрын

    A ơi trong vòng 3 tháng học full time 8h/d thì có khả năng học xong được java web k a. E được chọn vào chương trình đào tạo để qua Hàn làm. E có base là android nhưng đổi qua web k biết như thế nào, a tư vấn giúp e với. Thanks a

  • @devteriadotcom

    @devteriadotcom

    18 күн бұрын

    Chúc mừng em đã có cơ hội tốt như vậy. Nếu em đã có nền tảng Android thì khi học BE em sẽ có cái nhìn toàn cảnh hơn trong việc xây dựng APi như thế nào để phục vụ tốt nhất cho FrontEnd. 3 tháng full time như vậy anh thấy cũng đủ để em năm bắt từ cơ bản đến nâng cao về Spring framework rồi đấy, nếu chương trình đạo tạo của em bám sát thực tế thì càng tốt hơn.

  • @tanchannel3330
    @tanchannel33302 ай бұрын

    Anh ơi ở tầng controller mặc dù mình trả vê mã code do mình quy định r em có nên bộc thêm Responentity vào responedata của minhg để trả về http code kh ạ

  • @devteriadotcom

    @devteriadotcom

    2 ай бұрын

    Nếu em cảm thấy cần thiết thì có thể bọc thêm ResponseEntity, ví dụ như em cần trả về 201, 204 ...

  • @43.nguyenquocminh76
    @43.nguyenquocminh7613 сағат бұрын

    Em chưa hiểu lắm về nhiệm vụ của package dto ạ..tại bình thường em code không sử dụng đến dạng này .Mong anh giải thích ạ

  • @devteriadotcom

    @devteriadotcom

    6 сағат бұрын

    Package dto để chứa các object chỉ đơn thuần chứa dữ liệu mà không có nhiều behavior. Ví dụ như data trả về của api ...

  • @minhvuinhquang6488
    @minhvuinhquang64882 ай бұрын

    Anh ơi. Em mới học java chưa học gì về spring boot. Thì học spring boot từ video anh luôn được ko ạ

  • @devteriadotcom

    @devteriadotcom

    2 ай бұрын

    Được nha em, series này như tiêu đề là dành cho người mới, nên em hoàn toàn có thể theo học.

  • @zeu5227
    @zeu5227Ай бұрын

    @Bean dùng để làm gì vậy anh. Em đọc tài liệu vẫn chưa hiểu lắm ạ

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    Em đọc topic này đi, anh thấy khá rõ ràng: www.baeldung.com/spring-bean

  • @PhucNguyen-xd7tv
    @PhucNguyen-xd7tv2 ай бұрын

    anh cho e hỏi, trong Interface UserRepository, extends JpaRepository, thì tại sao lại String vậy ạ?

  • @devteriadotcom

    @devteriadotcom

    2 ай бұрын

    String là kiểu dữ liệu của khoá chính bảng User nha em.

  • @hackmehust
    @hackmehustАй бұрын

    Anh cho em hỏi, em bị hỏi 1 câu là trên interface thì việc đánh annotation là không cần thiết. Vậy cái repository đánh dấu @Repository để làm gì không ạ?

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    @Repository sẽ giúp framework đối xử với nó như một bean đồng thời nó cũng có một số xử lý đặc biệt với các custom methods và query bằng AOP.

  • @hackmehust

    @hackmehust

    Ай бұрын

    @@devteriadotcom e thử nếu không đánh dấu @Repository thì vẫn có thể Autowired được trong Service. Cái bean ở đây nghĩa là gì vậy ạ. Không hiểu sao tự nhiên nay đi hỏi bị vặn ghê quá a ạ.

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    Yeah, A mới check lại doc của Spring, thực chất Spring sẽ tự scan những interface nào có extends JPA. Vì vậy việc annotate nó với @Repository là không bắt buộc. Tuy nhiên việc annotate với @Repository chủ yếu là để developer xác định rõ mục đích của interface là gì và đây là một pratice mà Spring recommend nên follow.

  • @hackmehust

    @hackmehust

    Ай бұрын

    @@devteriadotcom Dạ vâng em cảm ơn anh. Không hiểu mấy anh Dev Lead hỏi câu này mục đích gì. Chắc có thể để xem có hiểu thực sự vấn đề không. Cơ mà em thấy kiểu đặt câu hỏi này dìm ứng viên hay sao ý. ~~

  • @aisuhuynh9324
    @aisuhuynh93242 күн бұрын

    5:00 của em bị "the file in editor is not runnable" anh ơi. Em dùng bản Community

  • @devteriadotcom

    @devteriadotcom

    2 күн бұрын

    Em chụp hình lỗi post lên group facebook devteria nhé

  • @NguyenHung-gz7ug
    @NguyenHung-gz7ug3 ай бұрын

    đoạn 26:23 anh làm cách nào mà tạo ra jpa: hibernate đl-auto .... nhanh vậy ạ

  • @devteriadotcom

    @devteriadotcom

    3 ай бұрын

    À đoạn đó a copy sẵn để paste cho nhanh thôi em chứ kg có phím tắt gì đâu :))

  • @ahnlinh2197

    @ahnlinh2197

    Ай бұрын

    cùng thắc mắc luôn, lần đầu thì có thể là paste, chứ anh làm đến lần thứ hai nên tưởng phím tắt =))

  • @quanganh7094
    @quanganh70943 ай бұрын

    bao giờ có vid mới vậy ạ

  • @devteriadotcom

    @devteriadotcom

    3 ай бұрын

    Mình ra phần tiếp theo rồi nè bạn: Khóa học Java spring boot 3: Quản lý Exception tập trung và Validation kzread.info/dash/bejne/loJoq8iuXZe2cdY.html

  • @LocNguyen-tu9id
    @LocNguyen-tu9idАй бұрын

    Dạ anh ơi em bị lỗi này khi start App lên ạ, với khi em đổi đuôi thành yaml thì biểu tượng nó không đổi thành chữ Y như trong video ạ! 'Unable to determine Dialect without JDBC metadata'

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    Những lỗi này em có thể chụp hình post lên group thì dễ hơn em.

  • @LocNguyen-tu9id

    @LocNguyen-tu9id

    Ай бұрын

    @@devteriadotcom Dạ vâng anh!

  • @HoangTran-ur8rn

    @HoangTran-ur8rn

    9 күн бұрын

    bạn fix được lỗi chưa

  • @phuctranhoang8208
    @phuctranhoang820810 күн бұрын

    Anh ghi số thứ tự cho video được không ạ, em nhìn khó tìm quá

  • @devteriadotcom

    @devteriadotcom

    10 күн бұрын

    Ý em là ghi ở hình thumbnail hả? Anh có để trong playlist, em có thể theo thứ tự trong playlist cũng được.

  • @macphungde1269
    @macphungde12693 ай бұрын

    anh có thể cho chữ to hơn để bọn e dễ nhìn hơn ko ạ

  • @devteriadotcom

    @devteriadotcom

    3 ай бұрын

    Thanks em, các video sau anh sẽ zoom màn hình lớn hơn để dễ nhìn.

  • @TuQuangChuong
    @TuQuangChuong2 ай бұрын

    A ơi sao lúc phút 27p chạy postman e bị lỗi 415 mặc dù e làm giống theo a

  • @devteriadotcom

    @devteriadotcom

    2 ай бұрын

    Em check lại chỗ method là POST hay GET nhé.

  • @hoanganh23611
    @hoanganh236112 ай бұрын

    anh ơi bảng trong database em đặt là users thì phải sửa gì k ạ em dùng post man kiểm tra mà cứ lỗi 404

  • @devteriadotcom

    @devteriadotcom

    2 ай бұрын

    Em sửa trực tiếp trong db hả? Nếu vậy em cần update lại entity User, set table name cho nó lad users

  • @hoanganh23611

    @hoanganh23611

    2 ай бұрын

    @@devteriadotcom chỉ cần set table name trong lớp entity user hả anh

  • @devteriadotcom

    @devteriadotcom

    2 ай бұрын

    Đúng rồi em. Nhưng tại sao em lại đặt tên là users? Tên table đặt số theo số ít là convention tốt.

  • @hoanganh23611

    @hoanganh23611

    2 ай бұрын

    @@devteriadotcom em tạo bảng bằng lệnh để name table là user thì nó báo lỗi à nnên em đổi thành users

  • @tuannam569
    @tuannam569Ай бұрын

    cái chức năng xóa em code trên eclispe sao lại lỗi 500 nhỉ a

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    Em chụp hình gửi lên group facebook mọi người xem thử.

  • @nhuthanhnguyen5515
    @nhuthanhnguyen551527 күн бұрын

    a ơi sao khi e chạy trong postman thì bị lỗi 401 vậy ạ

  • @devteriadotcom

    @devteriadotcom

    27 күн бұрын

    Em checkout về branch anh để dưới description của video nhé.

  • @thile6968
    @thile6968Ай бұрын

    a ơi, e chạy sau khi coi video tới phút thứ 25 thì nó bị lỗi này ạ: Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-05-10T02:40:43.896+07:00 ERROR 7520 --- [ main] o.s.boot.SpringApplication : Application run failed

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    Em chụp tới đoạn cause by anh em thử lỗi gì.

  • @thile6968

    @thile6968

    Ай бұрын

    @@devteriadotcom dạ e fix đc rồi ạ

  • @crisskhanh
    @crisskhanh29 күн бұрын

    sao em không tạo được file yami nhỉ

  • @devteriadotcom

    @devteriadotcom

    28 күн бұрын

    yaml nha em (L chứ kg phải i)

  • @toandtt5871
    @toandtt5871Ай бұрын

    a ơi em chạy postman ra lỗi 405 là sao vậy anh

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    Em kiểm tra lại method với endpoint đã đúng chưa nhé. Với em nhớ checkout đúng branch anh để dưới description của video.

  • @vietquoc5397
    @vietquoc5397Ай бұрын

    a ơi, ở phần update em chạy thì báo lỗi thế này là sao vậy ạ, em có gg mà ko biết sửa sao ạ { "timestamp": "2024-05-01T14:07:29.791+00:00", "status": 400, "error": "Bad Request", "path": "/identity/users/updateUser/c81f1ce5-4507-441f-ab45-bd520ef71017" }

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    Em chụp chi tiết lỗi trong console a coi thử.

  • @vietquoc5397

    @vietquoc5397

    Ай бұрын

    @@devteriadotcom dạ đây ạ 2024-05-03T00:09:20.061+07:00 INFO 18952 --- [nio-8080-exec-1] o.a.c.c.C.[.[localhost].[/identity] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2024-05-03T00:09:20.062+07:00 INFO 18952 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2024-05-03T00:09:20.063+07:00 INFO 18952 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms 2024-05-03T00:09:20.096+07:00 WARN 18952 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public com.devteria.identityservice.entity.Users com.devteria.identityservice.controller.UserController.updateUser(java.lang.String,com.devteria.identityservice.dto.request.UserUpdateRequest)]

  • @vietquoc5397

    @vietquoc5397

    Ай бұрын

    @@devteriadotcom dạ đây a: 2024-05-03T15:47:50.263+07:00 INFO 6992 --- [nio-8080-exec-1] o.a.c.c.C.[.[localhost].[/identity] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2024-05-03T15:47:50.263+07:00 INFO 6992 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2024-05-03T15:47:50.265+07:00 INFO 6992 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms 2024-05-03T15:47:50.304+07:00 WARN 6992 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public com.devteria.identityservice.entity.Users com.devteria.identityservice.controller.UserController.updateUser(java.lang.String,com.devteria.identityservice.dto.request.UserUpdateRequest)]

  • @devteriadotcom

    @devteriadotcom

    Ай бұрын

    Request của em trong postman có thể chưa đúng, sai content type hoặc thiếu body. Em check lại chỗ đó nhé.

Келесі