Lỗi font tiếng việt trong mysql ra web spring mvc năm 2024
Hibernate và Spring là mã nguồn mở Java khuôn khổ mà đơn giản hóa việc phát triển các ứng dụng Java / JEE, ứng dụng độc lập chạy trên một JVM duy nhất, từ đơn giản cho đến các ứng dụng phức tạp, chạy trên các máy chủ ứng dụng toàn diện. Hibernate và Spring cho phép các nhà phát triển để tạo ra khả năng mở rộng, đáng tin cậy, và hiệu quả. Show Mặc dù mục đích của các khuôn khổ một phần chồng lên nhau, đối với hầu hết các phần, từng được sử dụng cho một mục đích khác nhau. Hibernate framework nhằm giải quyết các vấn đề quản lý dữ liệu trong Java:API Java, JDBC (Java Database Connectivity), persistence providers , DBMS (Database Management Systems), và là ngôn ngữ trung gian, SQL (Structured Query Language). Ngược lại, Spring là một khung nhiều tầng mà không dành riêng cho một khu vực kiến trúc ứng dụng cụ thể . Tuy nhiên, Spring không cung cấp giải pháp riêng của mình cho các vấn đề như sự kiên trì, mà đã có giải pháp tốt. Thay vào đó, Spring thống nhất các giải pháp từ trước dưới API nhất quán của nó và làm cho họ dễ dàng hơn để sử dụng. Như đã đề cập, một trong những khu vực này là persistence. Spring có thể được tích hợp với một persistence solution, như Hibernate, để cung cấp một lớp trừu tượng, quản lý, và có hiệu quả. Upload và download các file là những tác vụ rất phổ biến mà các lập trình viên thường xuyên phải triển khai trong quá trình phát triển ứng dụng. Trong bài viết này, chúng ta sẽ tìm hiểu về cách quản lý file cơ bản trong ứng dụng SpringBoot REST API. Những file này sau khi được upload sẽ được lưu trữ trong hệ quản trị cơ sở dữ liệu MySQL. Trước tiên, chúng ta sẽ xây dựng API REST để có thể upload và download file, sau đó kiểm tra các API đã viết bằng Postman. Chúng ta cũng có thể làm một giao diện frontend cơ bản, áp dụng javascript để có thể có thể upload file. OK, bắt đầu nào!!! 😀😁 Tạo ứng dụngChúng ta có thể sử dụng theo các cách sau :
Sau đây là cấu trúc ứng dụng hoàn chỉnh mà các bạn có thể tham khảo. Danh sách các dependence được sử dụngTrong ứng dụng này chúng ta sẽ lưu trữ các file trong cơ sở dữ liệu MySQL, nên sẽ cần các dependence JPA, MySQL, Spring Web, Lombok
Cấu hình Database và Multipart FileTiếp theo, chúng ta cần định cấu hình url, username và password của cơ sở dữ liệu MySQL. Bạn có thể cấu hình nó trong src/main/resources/application.properties
Các bạn có thể thay đổi các thông tin trong tệp cấu hình trên dựa trên các thông số trong ứng dụng của các bạn Image EntityĐầu tiên chúng ta sẽ tạo Image Entity, class này sẽ ánh xạ với bảng image trong database
Image.java Trong Entity Image, chúng ta có 1 số thuộc tính sau
Anotation
Anotation
0 là một trong các life cycle của entity, được thực hiện trước khi entity được lưu vào database. Trong trường này chúng ta sử dụng
0 để lưu giá trị createdAt (thời gian upload) của image Image RepositoryTiếp theo chúng ta tạo repository để có thể tương tác với database
ImageRepository Image ControllerBây giờ chúng ta viết các API REST để upload và download các file. Trong file ImageController chúng ta định nghĩa các API thực hiện các công việc sau:
Các bạn có thể xem nội dung file ImageController dưới đây để biết thêm chi tiết
ImageController Image ServiceMỗi API được định nghĩa trong
2 chúng ta sẽ định nghĩa các method tương ứng trong
3 để xử lý. Trong này chúng ta định nghĩa các method xử lý các công việc sau
Trong
3 cần tương tác với database vì vậy cần inject bean
5 vào để có thể sử dụng Ngoài ra trong này có inject thêm bean
6, tác dụng của bean này chứa các method hữu ích để thao tác với file Các bạn có thể xem nội dung file ImageService dưới đây để biết thêm chi tiết
ImageService Phần định nghĩa và xử lý exception, các bạn có thể tham khảo code trong repo mình đặt ở phía dưới FileUtils
6 chứa các method hữu ích khi thao tác với file, chủ yếu trong phần này chúng ta sẽ có các method để validate file trước khi lưu vào trong database Ví dụ một số trường hợp chúng ta cần validate:
FileUtils Test APIPhần này, chúng ta sẽ test API dựa trên công cụ PostMan 1. Lấy danh sách ảnh2. Upload ảnh3. Xem ảnh4. Download ảnh5. Xóa ảnhVậy là chúng ta đã hoàn thành ứng dụng “File Management” với các chức năng cơ bản. Hi vọng các bạn thấy bài viết này hữu ích và thú vị 😁😁😁 Trong phần tiếp theo, chúng ta sẽ làm ứng dụng FrontEnd cơ bản kết nối với ứng dụng SpringBoot để có thể thao tác với file ở trên UI Phần sources code của bài viết này, các bạn có thể tham khảo tại đây: https://github.com/buihien0109/image-management/tree/main/image-management-backend |