Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server 2019 (15.x) a novější verze
Zjistěte, jak můžete implementovat program Java pro SQL Server pomocí sady Microsoft Extensibility SDK pro Javu. Sada SDK je rozhraní pro rozšíření jazyka Java, které se používá k výměně dat s SQL Serverem a ke spouštění kódu Java z SQL Serveru.
Sada SDK se instaluje jako součást SQL Serveru 2019 (15.x) a novějších verzí ve Windows i Linuxu:
- Výchozí instalační cesta ve Windows:
<instance installation home directory>\MSSQL\Binn\mssql-java-lang-extension.jar - Výchozí instalační cesta v Linuxu:
/opt/mssql/lib/mssql-java-lang-extension.jar
Kód je open source a najdete ho v úložišti SQL Server Language Extensions na GitHubu.
Požadavky na implementaci
Rozhraní SDK definuje požadavky, které je potřeba splnit, aby SQL Server komunikoval s běhovým prostředím Java. Pokud chcete použít sadu SDK, musíte dodržovat některá pravidla implementace ve vaší hlavní třídě. SQL Server pak může spustit konkrétní metodu ve třídě Java a vyměňovat data pomocí rozšíření jazyka Java.
Příklad použití sady SDK najdete v kurzu : Vyhledání řetězce pomocí regulárních výrazů (regex) v Javě.
Třídy sady SDK
Sada SDK se skládá ze tří tříd.
Dvě abstraktní třídy, které definují rozhraní, které rozšíření Java používá k výměně dat s SQL Serverem:
AbstractSqlServerExtensionExecutorAbstractSqlServerExtensionDataset
Třetí třída je pomocná třída, která obsahuje implementaci objektu datové sady. Je to volitelná třída, kterou můžete použít, což usnadňuje začátek. Místo toho můžete použít vlastní implementaci takové třídy.
PrimitiveDataset
V následující části najdete popisy jednotlivých tříd SDK. Zdrojový kód tříd SDK je k dispozici v úložišti SQL Server Language Extensions na GitHubu.
Třída: AbstractSqlServerExtensionExecutor
Abstraktní třída AbstractSqlServerExtensionExecutor obsahuje rozhraní používané ke spuštění kódu Java rozšířením jazyka Java pro SQL Server.
Vaše hlavní třída Javy musí dědit z této třídy. Dědění z této třídy znamená, že existují určité metody ve třídě, kterou potřebujete implementovat ve své vlastní třídě.
Chcete-li dědit z této abstraktní třídy, rozšíříte o abstraktní název třídy v deklaraci třídy:
public class <MyClass> extends AbstractSqlServerExtensionExecutor {}
Minimálně vaše hlavní třída musí implementovat metodu execute(...).
Metoda execute
Metoda execute je metoda, která je volána z SQL Serveru prostřednictvím rozšíření jazyka Java pro vyvolání kódu Java z SQL Serveru. Jedná se o metodu klíče, ve které zahrnete hlavní operace, které chcete spustit z SQL Serveru.
Pokud chcete předat argumenty metody javě z SQL Serveru, použijte @param parametr v sp_execute_external_script. Metoda execute přebírá své argumenty tímto způsobem.
public AbstractSqlServerExtensionDataset execute(AbstractSqlServerExtensionDataset input, LinkedHashMap<String, Object> params) {}
Metoda init
Metoda init se spustí po konstruktoru a před metodou execute. Veškeré operace, které je třeba provést před execute(...), lze provést v této metodě.
public void init(String sessionId, int taskId, int numtask) {}
Třída: AbstractSqlServerExtensionDataset
Abstraktní třída AbstractSqlServerExtensionDataset obsahuje rozhraní pro zpracování vstupních a výstupních dat používaných rozšířením Java.
Třída: PrimitiveDataset
Třída PrimitiveDataset je implementace AbstractSqlServerExtensionDataset , která ukládá jednoduché typy jako primitivní pole.
PrimitiveDataset je k dispozici v sadě SDK jako volitelná pomocná třída. Pokud tuto třídu nepoužíváte, musíte implementovat vlastní třídu, která dědí z AbstractSqlServerExtensionDataset.