Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

CallableStatement trong JDBC là gì?

CallableStatement là interface dùng để gọi Stored Procedure trong database từ Java. Nó kế thừa từ PreparedStatement và cung cấp cách thức chuẩn gọi procedure trên mọi RDBMS.

Tạo CallableStatement

Dùng Connection.prepareCall() với cú pháp escape SQL:

CallableStatement cstmt = con.prepareCall("{call myProcedure(?, ?, ?)}");

Đặt giá trị tham số IN

Dùng setter methods (setString, setInt...):

cstmt.setString(1, "Raghav");
cstmt.setInt(2, 3000);
cstmt.setString(3, "Hyderabad");

Có thể dùng tên tham số thay vì index: cstmt.setString("nameParam", "Raghav").

Thực thi

cstmt.execute();

Ví dụ hoàn chỉnh

Giả sử procedure MySQL:

CREATE PROCEDURE myProcedure(IN name VARCHAR(30), IN sal INT, IN loc VARCHAR(45))
BEGIN INSERT INTO Employee(Name, Salary, Location) VALUES (name, sal, loc); END

Mã Java:

CallableStatement cstmt = con.prepareCall("{call myProcedure(?, ?, ?)}");
cstmt.setString(1, "Raghav"); cstmt.setInt(2, 3000); cstmt.setString(3, "Hyderabad");
cstmt.setString(1, "Kalyan"); cstmt.setInt(2, 4000); cstmt.setString(3, "Vishakhapatnam");
cstmt.execute();
System.out.println("Rows inserted ....");

Kết quả: các bản ghi mới được chèn vào bảng Employee.

Lưu ý: CallableStatement cũng hỗ trợ tham số OUT/INOUT qua registerOutParameter() và getXXX().