- vừa được xem lúc

[JAVA] Giới thiệu thư viện MirageSQL

0 0 12

Người đăng: Phat Le

Theo Viblo Asia

1.What's Mirage-SQL? Mirage-SQL là thư viện cho phép truy cập cơ sở dữ liệu dễ dàng và mạnh mẽ. Trong ngôn ngữ Java, chắc chúng ta đều biết có nhiều ORM tồn tại trước đó, nhưng chúng không thể xử lý tốt những câu truy vấn phức tạp. Trong các ứng dụng thực tế, sẽ có những lúc cần xử lý các câu truy vấn native. Một số ORM vẫn có hỗ trợ native SQL, nhưng hầu hết không thể xử lý những câu truy vấn động (MyBatis là một trong số ít ngoại lệ).

Mirage-SQL sử dụng file SQL để viết câu truy vấn (tương tự MyBatis viết truy vấn trên xml) và chạy trực tiếp trên source code. Parameter và truy vấn động của Mirage được hỗ trợ bằng cách tận dụng SQL comment. File sql sử dụng trong Mirage là một dynamic sql template, nhưng nó vẫn chỉ là sql và sử dụng comment theo quy tắc nhất định để làm điều kiện cho câu truy vấn động và các parameter. Tính năng dynamic sql template trong MirageSQL được gọi là 2WaySQL.

Vậy 2WaySQL có gì hay? Đó là khi chúng ta muốn copy câu truy vấn ở source code và chạy trực tiếp trên client tool, với các ORM khác thì phải sửa lại câu truy vấn khá nhiều để có thể chạy được, điều này gây phiền toái cho các developer. Nhưng với 2WaySQL, chúng ta có thể copy câu truy vấn từ source code và chạy trực tiếp trên các client tool mà ít phải chỉnh sửa nhất. Ví dụ sau đây sẽ minh hoạ về truy vấn động và tính năng 2WaySQL:

SELECT * FROM BOOK
/*BEGIN*/ WHERE /*IF author != null */ AUTHOR = /*author*/'Naoki Takezoe' /*END*/ /*IF minPrice != null */ AND PRICE >= /*minPrice*/20 /*END*/ /*IF maxPrice != null */ AND PRICE <= /*maxPrice*/100 /*END*/
/*END*/
ORDER BY BOOK_ID ASC

2. 2WaySQL: Như đã đề cập, MirageSQL hỗ trợ tính năng 2WaySQL. Nó được lấy cảm hứng từ S2JDBC, một ORM của người Nhật. 2WaySQL là một template SQL mà ở đây bạn có thể chỉ định các parameter và điều kiện bằng cách sử dụng cú pháp comment trong sql. Vì lý do này mà bạn có thể chạy trực tiếp câu truy vấn trên các client tool. Như ở ví dụ ở trên bạn có thể thấy phía sau comment có các giá trị mặc định, các giá trị này được sử dụng khi chạy trên client tool, còn khi chạy trên MirageSQL nó sẽ sử dụng giá trị từ các param. Khi chạy, Mirage sẽ thay thế các param bằng ? và bỏ các giá trị mặc định. Vì vậy khi mirage chạy câu truy vấn sẽ có dạng sau:

SELECT * FROM BOOK WHERE AUTHOR = ? AND PRICE >= ? AND PRICE <= ?
ORDER BY BOOK_ID ASC

Mirage cũng hỗ trợ map các cột từ bảng với entity bằng cách sử dụng các annotation, và cũng có thể sử dụng với Spring Framework Mặc định Mirage hỗ trợ các phương thức CRUD : save, update, delete, findOne, findAll mà không cần phải viết sql.

Nếu có hứng thú với thư viện này, bạn có thể tìm hiểu thêm ở github. mình có để link ở dưới

Nguồn tham khảo : https://github.com/mirage-sql/mirage/wiki/Introduction

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 297

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 273

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 50

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 193

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 70

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 137