Tạo và sử dụng EJB Query Language (EJB QL) - Create and use EJB Query Language (EJB QL)

tranhuyvc

Administrator
Staff member
21/1/10
6,248
229
63
Tạo và sử dụng EJB Query Language (EJB QL) - Create and use EJB Query Language (EJB QL)

EJB Query được giới thiệu trong EJB 2.0. EJB QL được nhúm trong file ejb_jar.xml dùng để truy vấn dữ liệu một cách nhanh chóng, cú pháp tương tự như ngôn ngữ SQL. EJB QL có 3 loại : Finder, Select và Home method.
Finder Method
Finder nằm trong inteface Home và có prefix là 'find'. Finder nhập về một hoặc một tập hợp thể hiện của entity bean, Vì Finder nằm ở Home nên người dùng có thể truy cập và gọi một các trực tiếp. Kiểu trả về của Finder có thể là Remote Local Interface hoặc là tập các đối tượng cài đặt cho remote local.
- Để sử dụng EJB QL - các bạn cần tạo một CMP trước, sau đó mới thực hiện các thao tác trong bài viết dưới đây. Tham khảo cách tạo và sử dụng CMP trong Netbean tại : http://congdongjava.com/showthread.php?t=5753
Các tạo Finder trong Netbean
Bạn mở EJB Bean project bạn vừa tạo / Còniguration files / ejb-jar.xml
Trong ejb-jar.xml / Enterprise Beans/ chọn Bean cần tạo / CMP Finder Methods
Chọn Add

Trong add method, chọn thêm tham số trong phần Add Parameter, đặt tên cho find, chú ý phải bắt đầu bằng prefix 'findby'. Gõ câu lệnh trong EJB QL, để truy cập các tham số thì các bạn sử dụng ?1,?2 cho vị trí tham số tương ứng
Sau khi hoàn tất chọn ok, lúc bấy giờ các bạn sẽ thấy trong Home xuất hiện thêm phương thức
Home
Collection findBytensv(String tensv) throws javax.ejb.FinderException;
Viết servlet và test, đoạn code sau trong processRequest()
out.println("Thong tin sinh vien");
StudentLocalHome home=this.lookupStudentBean1();
try {
Collection con = home.findBytensv(new String("cdjv"));
StudentLocal loc=(StudentLocal)con.iterator().next();
out.println("<br/> Ten Lop la : "+loc.getLop());
} catch (Exception ex) {
ex.printStackTrace();
}
Sau khi run website, các bạn sẽ được kết quả sau
Thong tin sinh vien
Ten Lop la : Cong dong java
Select Method
Là một loại method đạc biệt của EJB QL, nó không xuất hiện trong Home vì thể người dùng không thể gọi trực tiếp, mà phải gọi thông qua Home - sẽ đề cập trong phần sau
Cách tạo Select Method
Tương tự như Find, các bạn thực hiện theo hình sau
Chọn Add, lưu ý, phần Name có prefix là 'ejbselect
'
Thêm các cấu hình xong, chọn Ok. ở đây mình sẽ đếm tất cả sinh viên và trả về trong số sinh viên
Home Method
Home method bản thân nó không là gì cả, nó không nằm trong ejb-jar.xml mà chỉ dùng để chạy Select method và đồng thời có thể viết các hàm liên quan khác
Các sử dụng Home Method
Ở đây mình sẽ demo cài đặt cho phương thức select phía trên
Home
int tongsv() throws javax.ejb.FinderException;
Bean
public int ejbHomeTongsv() throws javax.ejb.FinderException{
return ejbSelecttongsv();
}
Chạy thử trọng Servlet, trong hàm processRequest()
out.println("Tong so sinh vien la");
int tong;
try {
tong = lookupStudentBean1().tongsv();
out.print(tong+"");
} catch (FinderException ex) {
ex.printStackTrace();
}
Các bạn sẽ được kết quả như sau
Tong so sinh vien la 4
Chúc các bạn thành công
---------------
Congdongjava.com - Ghi rõ nguồn khi sao chép bài viết này