Megosztás a következőn keresztül:


Microsoft Extensibility SDK for Java for SQL Server

A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók

Megtudhatja, hogyan implementálhat Java-programot az SQL Serverhez a Microsoft Bővíthetőségi SDK for Java használatával. Az SDK egy interfész a Java nyelvi bővítményhez, amely az SQL Serverrel való adatcserére és a Java-kód SQL Serverről való végrehajtására szolgál.

Az SDK az SQL Server 2019 (15.x) és újabb verzióinak részeként van telepítve Windows és Linux rendszeren is:

  • Alapértelmezett telepítési útvonal Windows rendszeren: <instance installation home directory>\MSSQL\Binn\mssql-java-lang-extension.jar
  • Alapértelmezett telepítési útvonal Linuxon: /opt/mssql/lib/mssql-java-lang-extension.jar

A kód nyílt forráskódú, és az SQL Server Language Extensions GitHub-adattárban található.

Megvalósítási követelmények

Az SDK-felület olyan követelményeket határoz meg, amelyeket teljesíteni kell ahhoz, hogy az SQL Server kommunikáljon a Java-futtatókörnyezettel. Az SDK használatához be kell tartania néhány implementációs szabályt a főosztályban. Az SQL Server ezután végrehajthat egy adott metódust a Java-osztályban, és adatokat cserélhet a Java nyelvi bővítmény használatával.

Az SDK használatára vonatkozó példa : Oktatóanyag: Sztring keresése reguláris kifejezésekkel (regex) Java nyelven.

SDK-osztályok

Az SDK három osztályból áll.

Két absztrakt osztály, amelyek meghatározzák azt a felületet, amelyet a Java-bővítmény az SQL Serverrel való adatcserére használ:

  • AbstractSqlServerExtensionExecutor
  • AbstractSqlServerExtensionDataset

A harmadik osztály egy segédosztály, amely egy adathalmaz-objektum implementációját tartalmazza. Ez egy választható osztály, amely megkönnyíti az első lépéseket. Az ilyen osztály saját implementációját is használhatja helyette.

  • PrimitiveDataset

A következő szakaszban az SDK minden osztályának leírását megtalálja. Az SDK-osztályok forráskódja az SQL Server Language Extensions GitHub-adattárban érhető el.

Osztály: AbstractSqlServerExtensionExecutor

Az absztrakt osztály AbstractSqlServerExtensionExecutor tartalmazza az SQL Server Java nyelvi bővítménye által a Java-kód végrehajtásához használt felületet.

A fő Java-osztálynak ebből az osztályból kell örökölnie. Ennek az osztálynak az öröklése azt jelenti, hogy bizonyos módszereket kell implementálnia a saját osztályában.

Ha ebből az absztrakt osztályból szeretne örökölni, az osztálydeklarációban az absztrakt osztály nevével bővíthető:

public class <MyClass> extends AbstractSqlServerExtensionExecutor {}

Legalább a főosztálynak implementálnia kell az execute(...) metódust.

Metódus végrehajtása

A végrehajtási metódus az a metódus, amelyet az SQL Serverről a Java nyelvi bővítményen keresztül hív meg a Java-kód meghívásához az SQL Serverről. Ez egy kulcsmetódus, amely tartalmazza az SQL Serverről végrehajtandó fő műveleteket.

Ha metódusargumentumokat szeretne átadni a Java-nak az SQL Serverről, használja a @param következő paramétert: sp_execute_external_script. A metódus execute így fogadja a paramétereit.

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

Init metódus

Az init metódus végrehajtása a konstruktor után és a végrehajtási módszer előtt történik. Bármely művelet, amelyet a execute(...) előtt el kell végezni, ebben a módszerben elvégezhető.

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

Osztály: AbstractSqlServerExtensionDataset

Az absztrakt osztály AbstractSqlServerExtensionDataset tartalmazza a Java-bővítmény által használt bemeneti és kimeneti adatok kezelésére szolgáló felületet.

Osztály: PrimitiveDataset

Az osztály PrimitiveDataset egy olyan implementáció AbstractSqlServerExtensionDataset , amely egyszerű típusokat tárol primitív tömbökként.

PrimitiveDataset az SDK-ban választható segédosztályként van megadva. Ha nem használja ezt az osztályt, saját osztályt kell implementálnia, amely a következőtől AbstractSqlServerExtensionDatasetöröklődik: