Microsoft Extensibility SDK untuk Java untuk SQL Server

Berlaku untuk: SQL Server 2019 (15.x) dan versi yang lebih baru

Pelajari cara menerapkan program Java untuk SQL Server menggunakan Microsoft Extensibility SDK untuk Java. SDK adalah antarmuka untuk ekstensi bahasa Java yang digunakan untuk bertukar data dengan SQL Server dan untuk menjalankan kode Java dari SQL Server.

SDK diinstal sebagai bagian dari SQL Server 2019 (15.x) dan versi yang lebih baru, pada Windows dan Linux:

  • Jalur penginstalan default di Windows: <instance installation home directory>\MSSQL\Binn\mssql-java-lang-extension.jar
  • Jalur penginstalan default di Linux: /opt/mssql/lib/mssql-java-lang-extension.jar

Kode ini sumber terbuka dan dapat ditemukan di repositori GitHub Ekstensi Bahasa SQL Server.

Persyaratan implementasi

Antarmuka SDK mendefinisikan serangkaian persyaratan yang perlu dipenuhi agar SQL Server dapat berkomunikasi dengan runtime Java. Untuk menggunakan SDK, Anda perlu mengikuti beberapa aturan implementasi di kelas utama Anda. SQL Server kemudian dapat menjalankan metode tertentu di kelas Java dan bertukar data menggunakan ekstensi bahasa Java.

Untuk contoh bagaimana Anda dapat menggunakan SDK, lihat Tutorial: Mencari string menggunakan ekspresi reguler (regex) di Java.

Kelas SDK

SDK terdiri dari tiga kelas.

Dua kelas abstrak yang menentukan antarmuka yang digunakan ekstensi Java untuk bertukar data dengan SQL Server:

  • AbstractSqlServerExtensionExecutor
  • AbstractSqlServerExtensionDataset

Kelas ketiga adalah kelas pembantu, yang berisi implementasi objek himpunan data. Ini adalah kelas opsional yang dapat Anda gunakan, yang membuatnya lebih mudah untuk memulai. Anda juga dapat menggunakan implementasi Anda sendiri dari kelas tersebut sebagai gantinya.

  • PrimitiveDataset

Di bagian berikut, Anda menemukan deskripsi setiap kelas di SDK. Kode sumber kelas SDK tersedia di repositori GitHub Ekstensi Bahasa SQL Server.

Kelas: AbstractSqlServerExtensionExecutor

Kelas abstrak AbstractSqlServerExtensionExecutor berisi antarmuka yang digunakan untuk menjalankan kode Java oleh ekstensi bahasa Java untuk SQL Server.

Kelas Java utama Anda perlu mewarisi dari kelas ini. Mewarisi dari kelas ini berarti bahwa ada metode tertentu di kelas yang perlu Anda terapkan di kelas Anda sendiri.

Untuk mewarisi dari kelas abstrak ini, Anda perluas dengan nama kelas abstrak dalam deklarasi kelas:

public class <MyClass> extends AbstractSqlServerExtensionExecutor {}

Minimal, kelas utama Anda perlu menerapkan metode execute(...).

Metode dijalankan

Metode eksekusi adalah metode yang dipanggil dari SQL Server melalui ekstensi bahasa Java, untuk memanggil kode Java dari SQL Server. Ini adalah metode utama di mana Anda menyertakan operasi utama yang ingin Anda jalankan dari SQL Server.

Untuk meneruskan argumen metode ke Java dari SQL Server, gunakan @param parameter di sp_execute_external_script. Metode execute ini mengambil argumennya seperti itu.

public AbstractSqlServerExtensionDataset execute(AbstractSqlServerExtensionDataset input, LinkedHashMap<String, Object> params)  {}

Metode init

Metode init dijalankan setelah konstruktor, dan sebelum metode eksekusi . Setiap operasi yang perlu dilakukan sebelumnya execute(...) dapat dilakukan dalam metode ini.

public void init(String sessionId, int taskId, int numtask) {}

Kelas: AbstractSqlServerExtensionDataset

Kelas abstrak AbstractSqlServerExtensionDataset berisi antarmuka untuk menangani data input dan output yang digunakan oleh ekstensi Java.

Kelas: PrimitiveDataset

PrimitiveDataset Kelas adalah implementasi dari AbstractSqlServerExtensionDataset yang menyimpan jenis sederhana sebagai array primitif.

PrimitiveDataset disediakan di SDK sebagai kelas pembantu opsional. Jika Anda tidak menggunakan kelas ini, Anda perlu menerapkan kelas Anda sendiri yang mewarisi dari AbstractSqlServerExtensionDataset.