Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op: SQL Server 2019 (15.x) en latere versies
De functie SQL Server Language Extensions maakt gebruik van de sp_execute_external_script door het systeem opgeslagen procedure als de interface om de Java-runtime aan te roepen.
In dit artikel wordt uitleg gegeven over implementatiedetails voor Java-klassen en -methoden die worden uitgevoerd op SQL Server.
Waar java-klassen te plaatsen
Er zijn twee methoden voor het aanroepen van Java-klassen in SQL Server:
Plaats
.classof.jarbestanden in uw Java-klassepad.Upload gecompileerde klassen in een
.jarbestand en andere afhankelijkheden naar de database met behulp van de externe bibliotheek-DDL .
Opmerking
Gebruik bestanden en niet afzonderlijke .class bestanden als algemene aanbeveling.jar. Dit is gebruikelijk in Java en maakt de algehele ervaring eenvoudiger. Zie ook : Een Java .jar-bestand maken op basis van klassebestanden.
Het klassepad gebruiken
Basisprincipes
Hier volgen enkele basisprincipes bij het uitvoeren van Java op SQL Server.
Gecompileerde aangepaste Java-klassen moeten bestaan in
.classbestanden of.jarbestanden in uw Java-klassepad. De PARAMETER CLASSPATH biedt het pad naar de gecompileerde Java-bestanden.De Java-methode die u aanroept, moet worden opgegeven in de
scriptparameter voor de opgeslagen procedure.Als de klasse deel uitmaakt van een pakket, moet de
packageNameklasse worden opgegeven.paramswordt gebruikt om parameters door te geven aan een Java-klasse. Het aanroepen van een methode waarvoor argumenten zijn vereist, wordt niet ondersteund. Daarom zijn parameters de enige manier om argumentwaarden door te geven aan uw methode.
Opmerking
Deze opmerking plaatst ondersteunde en niet-ondersteunde bewerkingen die specifiek zijn voor Java in SQL Server 2019 (15.x) en latere versies. In de opgeslagen procedure worden invoerparameters ondersteund, terwijl uitvoerparameters niet worden ondersteund.
Java-klasse aanroepen
De sp_execute_external_script door het systeem opgeslagen procedure is de interface die wordt gebruikt om de Java-runtime aan te roepen. In het volgende voorbeeld ziet u een sp_execute_external_script gebruik van de Java-extensie en parameters voor het opgeven van pad, script en uw aangepaste code.
Opmerking
U hoeft niet te definiƫren welke methode moet worden aangeroepen. Standaard wordt een aangeroepen execute methode aangeroepen. Dit betekent dat u de Microsoft Extensibility SDK voor Java voor SQL Server moet volgen en een uitvoermethode in uw Java-klasse moet implementeren.
DECLARE @param1 AS INT;
SET @param1 = 3;
EXECUTE sp_execute_external_script
    @language = N'Java',
    @script = N'<packageName>.<ClassName>',
    @input_data_1 = N'<Input Query>',
    @param1 = @param1;
CLASSPATH instellen
Nadat u uw Java-klasse of -klassen hebt gecompileerd en een .jar bestand in uw Java classpathhebt gemaakt, hebt u twee opties voor het opgeven van het pad naar de JAVA-extensie van SQL Server:
Externe bibliotheken gebruiken
De eenvoudigste optie is om sql Server uw klassen automatisch te laten vinden door externe bibliotheken te maken en de bibliotheek naar een JAR te wijzen. Externe bibliotheken gebruiken voor Java
Een systeemomgevingsvariabele registreren
U kunt een omgevingsvariabele voor het systeem maken en de paden naar uw
.jarbestand met de klassen opgeven. Maak een systeemomgevingsvariabele met de naamCLASSPATH.
Externe bibliotheek gebruiken
In SQL Server 2019 (15.x) en latere versies kunt u externe bibliotheken gebruiken voor de Java-taal in Windows en Linux. U kunt uw klassen compileren in een .jar bestand en het .jar bestand en andere afhankelijkheden uploaden naar de database met behulp van de DDL CREATE EXTERNAL LIBRARY .
Voorbeeld van het uploaden van een .jar bestand met een externe bibliotheek:
CREATE EXTERNAL LIBRARY myJar
    FROM (CONTENT = '<local path to .jar file>')
    WITH (LANGUAGE = 'Java');
GO
Wanneer er een externe bibliotheek wordt gemaakt, heeft SQL Server automatisch toegang tot de Java-klassen en hoeft u geen speciale machtigingen in te stellen voor het klassepad.
De volgende code is een voorbeeld van het aanroepen van een methode in een klasse vanuit een pakket, geüpload als een externe bibliotheek:
EXECUTE sp_execute_external_script
    @language = N'Java',
    @script = N'MyPackage.MyCLass',
    @input_data_1 = N'SELECT * FROM MYTABLE'
WITH RESULT SETS((column1 INT));
Zie CREATE EXTERNAL LIBRARY voor meer informatie.
Loopback-verbinding met SQL Server
Gebruik een loopback-verbinding om via JDBC verbinding te maken met SQL Server om gegevens uit Java te lezen of schrijven die worden uitgevoerd vanuit sp_execute_external_scriptJava. U kunt dit gebruiken wanneer u de InputDataSet argumenten en OutputDataSet argumenten van sp_execute_external_script niet mogelijk hebt.
Gebruik het volgende voorbeeld om een loopback-verbinding te maken in Windows:
jdbc:sqlserver://localhost:1433;databaseName=Adventureworks;integratedSecurity=true;
Voor het maken van een loopback-verbinding in Linux vereist het JDBC-stuurprogramma drie verbindingseigenschappen die zijn gedefinieerd in het volgende certificaat: