Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
AbstractSqlServerExtensionExecutorAbstractSqlServerExtensionDataset
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: