MyBatis and Doma2: Dynamic SQL in Java Spring
Trước giờ làm với mấy chú Nhật hay sử dụng Doma2 trong Spring (hoặc seasar) để thao tác với Database. Thấy cái này cũng hay vì nó có viết được dynamic SQL (mà Doma2 gọi là 2WaySQL). Kiểu như if name != "" thì thêm điều kiện AND name like %name-truyền-vào%.
Nhìn thấy có vẻ đơn giản nhưng nếu không có cái dynamic SQL thì phải sử dụng IF hoặc CASE WHEN trong SQL làm giảm đáng kể performance, bởi index thì không nhận khi sử dụng điều kiện rẽ nhánh.
Nhược điểm của Doma2 là cộng đồng nhỏ quá, 1 phần vì nó là hàng Nhật, 1 phần vì cũng lâu đời rồi nên chẳng thấy ai dùng (ngoài Nhật và công ty outsource cho Nhật).
Mới đây mò ra cái MyBatis cũng làm được trò này mà cộng đồng to hơn Doma2 nhiều. https://mybatis.org/mybatis-dynamic-sql/docs/spring.html















