Bài 10: Cách gọi function trong Hibernate

Tiếp theo bài Cách gọi procedure trong Hibernate hôm nay mình sẽ trình bày cách gọi function trong Hibernate.

1. Cách tạo function dưới cơ sở dữ liệu

Với cách gọi function trong Hibernate trước hết chúng ta phải có một cơ sở dữ liệu. Sau đây là hình ảnh mô tả chi tiết cơ sở dữ liệu:

kenhlaptrinh-cach-goi-function-trong-hibernate (1)

Click chuột phải vào function >> chọn new function >> function như vậy là đã tạo xong function. Bây giờ mình có môt function có tên là test(), mục đích của function test() là kiểm tra xem id của User có tồn tại hay không, nếu tồn tại trả về true ngược lại là false.

kenhlaptrinh-cach-goi-function-trong-hibernate (2)

2. Cấu trúc project cách gọi function trong Hibernate

Sau đây là hình ảnh tổng quan về cấu trúc project hướng dẫn gọi function trong Hibernate.

kenhlaptrinh-cach-goi-function-trong-hibernate (3)

Trong package util chứa Class HibernateUtil.java và file hibernate.cfg.xml.

hibernate.cfg.xml

HibernateUtil.java

Package model chứa Class User.java

User.java

2.1 Sử dụng phương thức doWork() gọi function trong Hibernate

Package test chứa Class Test.java

Test.java

Diễn giải phương thức callFunction(), đầu tiên phải gọi phương thức doWork()Interface Session cung cấp, trong phương thức doWork() nhận vào Interface Work mà:

Nên phải thực hiện phương thức execute(), tiếp đó là cách gọi function.

CallableStatement call = connection.prepareCall("{ ? = call test(?) }");

Đăng ký giá trị trả về khi hoàn thành function.

call.registerOutParameter(1, Types.BOOLEAN);

Gán giá trị vào function.

call.setLong(2, idUser);

Sau khi đã đầy đủ thủ tục thì việc tiếp theo là thực hiện gọi function

call.execute();

Với id User = 1 kết quả khi chạy chương trình như sau:

Kết quả khi chạy chương trình trả về true do id User = 1 tồn tại dưới cơ sở dữ liệu.

Lưu ý khi sử dụng phương thức session.doWork() sẽ không trả về giá trị cho nên bạn không thể gán giá trị khi gọi function. Muốn trả về giá trị khi gọi function trong Hibernate mời các bạn xem phần bên dưới.

2.1 Sử dụng phương thức doReturningWork() gọi function trong Hibernate

Class Test.java

Cũng như ở trên nên mình không giả thích thêm, chỉ khác là ở trên mình sử dụng phương thức doWork() còn ở đây mình sử dụng phương thức doReturningWork().

Cũng với id User = 1 kết quả khi chạy chương trình như sau:

callFunction(id) = true

Về cách gọi function trong Hibernate mình có trình bày hai cách như ở trên, khuyên các bạn nên dùng cách 2, cách 1 chỉ dùng cho biết thôi vì khi đã viết function là mình cần lấy một giá trị nào đó mà cách 1 thì không thể trả về giá trị sau khi đã gọi function.

Download source code bài viết bên dưới.

Download link Google Drive

Download link Vipshare

Download link Mshare

(Tác giả: Công Minh)

Bình luận

Loading...