Chào các bạn, trong các bài viết trước thì mình đã từng giới thiệu tới các bạn một thư viện đó là Lombok. Thư viện này giúp chúng ta đơn giản hóa việc tạo các POJO (Plain Old Java Object) trong Java.
Bạn nào chưa biết thì có thể tham khảo tham khảo bài viết đó tại đây: Cài đặt thư viện Lombok: Bạn sẽ bớt khổ hơn khi code JAVA
Nhưng thực tế thì trong nhiều dự án, chúng ta mong muốn là làm sao để sinh ra các lớp Entity, DTO từ các bảng trong cơ sở dữ liệu vì số lượng các bảng, các trường trong là rất nhiều.
Nếu bạn tạo ra nó một cách thủ công thì sẽ rất mất thời gian và cũng sẽ rất dễ bị sai sót. Lúc này bạn nên cài POJO Generator (một plugin tuyệt vời dành cho các bạn sử dụng IntelliJ Idea).
Mục Lục Nội Dung
#1. Kết nối đến cơ sở dữ liệu
Đầu tiên, các bạn phải kết nối đến cơ sở dữ liệu mà các bạn sử dụng thông qua IntelliJ trước đã. Cụ thể cách kết nối dữ liệu thì mình đã có một bài viết hướng dẫn riêng rồi.
Các bạn có thể tham khảo tại đây: Cách kết nối MySQL Server trong IntelliJ, đã đến lúc bỏ MySQL Workbench
Còn trong bài viết này, mình sẽ kết nối đến hệ quản trị cơ sở dữ liệu MySQL như hình bên dưới. Các bạn có thể chọn bất kỳ hệ quản trị cơ sở dữ liệu nào các bạn thích.
Điền đầy đủ các thông tin kết nối (các bạn có thể tham khảo bài viết bên trên để rõ hơn) => rồi bấm Apply
để kết nối đến cơ sở dữ liệu.
Đây chính là cơ sở dữ liệu mà mình đã kết nối đến. Các bạn có thể click vào tab Database như hình bên dưới để mở.
#2. Cài đặt POJO Generator Plugin
Bước tiếp theo đó là chúng ta sẽ cài đặt tiện ích POJO Generator
để có thể tự động sinh ra các Entity
và DTO class
trong quá trình code Java.
Các bạn vào mục File
=> Setting
như hình bên dưới.
Ở tab Plugins
, các bạn chọn Marketplace
như hình bên dưới => Sau đó nhập POJO Generator
trong ô tìm kiếm và bấm tìm kiếm.
Kết quả tìm kiếm các bạn chọn plugin như hình mình chọn bên dưới => rồi bấm Install
để cài đặt. Cuối cùng bấm OK
để xác nhận và nếu có thể hãy Restart IntelliJ để kích hoạt tiện ích này.
#3. Sinh ra các lớp Entity, DTO dựa trên bảng trong cơ sở dữ liệu
Sau khi cài đặt plugin thì các bạn mở lại tab Database
mà các bạn vừa kết nối ở Bước 1
. Tại đây bạn muốn sinh ra Entity class
hay DTO class
từ bảng nào thì chuột phải vào bảng đó.
Dưới cùng sẽ có lựa chọn sử dụng POJO Generator
. Các bạn có thể bấm vào và chọn sinh ra các Entity
cũng như DTO
tương ứng với bảng đó.
Sau khi chọn sinh ra Entity
hay DTO
thì các bạn phải chọn thư mục các bạn sẽ chứa lớp đó sau khi nó được sinh ra. Ở đây mình thường để trong thư mục model
của dự án. Các bạn có thể để ở bất cứ thư mục nào trong dự án.
Sau khi bấm OK
thì đây chính là lớp Entity
mà tiện ích đã tự động sinh ra cho mình. Các trường trong cơ sở dữ liệu sẽ được mapping tương ứng với các trường trong lớp được sinh ra.
Để sinh ra một DTO class
thì các bạn cũng làm tương tự như với Entity class
nhé.
Các bạn có thể tạo một thư mục riêng tên là dto
để lưu các lớp DTO
(Data Transfer Object).
Và đây chính là nội dung file DTO được sinh ra tương ứng với bảng customers
trong cơ sở dữ liệu.
Như các bạn thấy, trên thực tế thì plugin này vẫn sinh ra các hàm setter
, getter
(khiến cho các lớp Entity
và DTO
không được gọn và tốn thời gian biên dịch ra file .class
)
Để khắc phục nhược điểm này các bạn có thể xóa hết các hàm Setter, Getter và với thư viện Lombok như sau.
#4. Kết luận
Okay, như vậy là mình đã hướng dẫn xong cho các bạn cách cài đặt POJO Generator trên IntelliJ để tự động sinh ra các lớp Entity, DTO dựa trên bảng trong cơ sở dữ liệu rồi nhé.
Với các dự án thực tế, việc lập trình viên có thêm thời gian để tập trung cho việc giải quyết các vấn đề liên quan đến nghiệp vụ là rất quan trọng, với khoảng thời gian tiết kiệm được thì lập trình viên sẽ có cơ hội cải thiện chất lượng mã nguồn cho dự án được tốt hơn.
Vâng, và các tiện ích mở rộng/ plugins như POJO Generator, thư viện Lombok… được sinh ra là với mục đích như vậy. Giúp giảm thiểu tối đa thời gian của lập trình viên dành cho các thao tác mang tính thủ tục.
Hi vọng là bài viết này sẽ giúp các bạn lập trình viên Java có thêm công cụ để tối ưu hóa thời gian cho việc lập trình của mình. Hẹn gặp lại các bạn trong các bài viết tiếp theo nhé 🙂
CTV: Nguyễn Đức Cảnh – Blogchiasekienthuc.com