Menggunakan prosedur tersimpan dengan parameter input

Unduh driver JDBC

Prosedur tersimpan SQL Server yang dapat Anda panggil adalah prosedur yang berisi satu atau beberapa parameter IN, yang merupakan parameter yang dapat digunakan untuk meneruskan data ke prosedur tersimpan. Microsoft JDBC Driver for SQL Server menyediakan kelas SQLServerPreparedStatement, yang dapat Anda gunakan untuk memanggil prosedur tersimpan semacam ini dan untuk memproses data yang dikembalikannya.

Ketika Anda menggunakan driver JDBC untuk memanggil prosedur tersimpan dengan parameter IN, Anda harus menggunakan call urutan escape SQL bersama dengan metode prepareCall dari kelas SQLServerConnection . Sintaks untuk call urutan escape dengan parameter IN adalah sebagai berikut:

{call procedure-name[([parameter][,[parameter]]...)]}

Catatan

Untuk informasi selengkapnya tentang urutan escape SQL, lihat Menggunakan urutan escape SQL.

Saat Anda membuat call urutan escape, tentukan parameter IN dengan menggunakan ? karakter (tanda tanya). Karakter ini bertindak sebagai tempat penampung untuk nilai parameter yang akan diteruskan ke prosedur tersimpan. Untuk menentukan nilai untuk parameter, Anda dapat menggunakan salah satu metode setter kelas SQLServerPreparedStatement. Metode setter yang dapat Anda gunakan ditentukan oleh jenis data parameter IN.

Ketika Anda meneruskan nilai ke metode setter, Anda harus menentukan tidak hanya nilai aktual yang akan digunakan dalam parameter, tetapi juga penempatan ordinal parameter dalam prosedur tersimpan. Misalnya, jika prosedur tersimpan Anda berisi satu parameter IN, nilai ordinalnya adalah 1. Jika prosedur tersimpan berisi dua parameter, nilai ordinal pertama adalah 1, dan nilai ordinal kedua adalah 2.

Sebagai contoh cara memanggil prosedur tersimpan yang berisi parameter IN, gunakan prosedur tersimpan uspGetEmployeeManagers dalam database sampel AdventureWorks2022. Prosedur tersimpan ini menerima parameter input tunggal bernama EmployeeID, yang merupakan nilai bilangan bulat, dan mengembalikan daftar rekursif karyawan dan manajer mereka berdasarkan EmployeeID yang ditentukan. Kode Java untuk memanggil prosedur tersimpan ini adalah sebagai berikut:

public static void executeSprocInParams(Connection con) throws SQLException {  
    try(PreparedStatement pstmt = con.prepareStatement("{call dbo.uspGetEmployeeManagers(?)}"); ) {  

        pstmt.setInt(1, 50);  
        ResultSet rs = pstmt.executeQuery();  

        while (rs.next()) {  
            System.out.println("EMPLOYEE:");  
            System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));  
            System.out.println("MANAGER:");  
            System.out.println(rs.getString("ManagerLastName") + ", " + rs.getString("ManagerFirstName"));  
            System.out.println();  
        }  
    }
}

Lihat juga

Menggunakan pernyataan dengan prosedur tersimpan