Trang chủ Đào tạo Sản phẩm Dịch vụ Kiến thức Videos Đối tác Giới thiệu Liên hệ Giảng viên FAQ

 

Sử dụng "Bind Variable" khi lập trình Java với Oracle

Giới thiệu

Kỹ thuật "Bind Variable" rất cần thiết để bảo đảm cho Oracle chạy nhanh ổn định, kỹ thuật này giúp vùng nhớ dùng chung Shared-Pool sử dụng hiệu quả hơn, giảm thiểu hiện tượng phân mảnh bộ nhớ, nhờ đó tăng đốc độ thực thi lệnh và có thể giúp Oracle Server chạy trong thời gian dài mà không cần phải khởi động lại. Ngoài ra, kỹ thuật này còn "hạn chế" kiểu tấn công nguy hiểm là chèn mã SQL, PL/SQL. Tuy nhiên điều đáng tiếc là kỹ thuật này lại chưa được sử dụng phổ biến tại Việt Nam. Bài viết này sẽ hướng dẫn cách sử dụng Bind-Variable khi lập trình Java với Oracle thông qua trình điểu khiển JDBC (Java Database Connectivity).

PreparedStatement

Giao diện lệnh PreparedStatement thường dùng thực thi câu lệnh SQL, mã dẫn minh họa kỹ thuật Bind-Variable::

PreparedStatement pstmt = conn.prepareStatement ("insert into emp (name) values (?)");
String name = request.getParameter("name");
pstmt.setString (1, name);
pstmt.execute();
pstmt.close();

CallableStatement

Giao diện lệnh CallableStatement thường dùng thực thi một khối lệnh PL/SQL có tên hoặc không tên, mã dẫn minh họa:

  • Thực thi khối lệnh PL/SQL có tên (Function, Store Procedure, Package)

CallableStatement pstmt = conn.prepareCall("{call Register_VP_Course(?,?)}");
pstmt.setString(1, studentName);
pstmt.setString(2, courseCode);
pstmt.executeUpdate();
pstmt.close(); 

  • Thực thi khối lệnh PL/SQL không tên (Anonymous PL/SQL)

CallableStatement cs = conn.prepareCall ("begin ? := GetCourseCode(?); end;");
cs.registerOutParameter(1,Types.CHAR);
cs.setString(2, name);
cs.executeUpdate();
String result = cs.getString(1);
cs.close();

Một điểm chú ý là kỹ thuật Bind-Vaiable chỉ hạn chế kiểu tấn công nguy hiểm chèn mã Oracle SQL, PL/SQL. Để hiểu rõ hơn về chủ đề này, các bạn có thể tham các khóa học sau tại VietPace.

1. Oracle SQL Tuning Workshop

2. Giải pháp chống tấn công Oracle

3. Kỹ thuật tấn công Oracle

(06/10/2008 - Đội ngũ VietPace)

VietPace chuyên cung cấp giải pháp và khóa đào tạo về công nghệ ORACLE và SUN, đặc biệt chúng tôi tiên phong về lĩnh vực bảo mật ORACLE tại Việt Nam, để biết thêm thông tin xin vui lòng liên hệ tại:

- Địa chỉ: 123 Trương Định, Quận 3, TP. HCM
- Điện thoại: +84 8 5.233.333
- Fax: +84 8 9.322.115
- email: contact@vietpace.com


Copyright 2007 www.vietpace.com, All rights reserved.