Aracılığıyla paylaş


SQL Server Dil Uzantılarında Java çalışma zamanını çağırma

Şunlar için geçerlidir: SQL Server 2019 (15.x) ve sonraki sürümleri

SQL Server Dil Uzantıları özelliği, Java çalışma zamanını çağırmak için arabirim olarak sp_execute_external_script sistem saklı yordamını kullanır.

Bu nasıl yapılır makalesinde, SQL Server'da yürütülen Java sınıfları ve yöntemleri için uygulama ayrıntıları açıklanmaktadır.

Java sınıflarının yerleştirileceği yer

SQL Server'da Java sınıflarını çağırmak için iki yöntem vardır:

  1. Java sınıf yolunuza veya .jar dosyaları yerleştirin.class.

  2. Bir dosyadaki .jar derlenmiş sınıfları ve diğer bağımlılıkları , dış kitaplık DDL'sini kullanarak veritabanına yükleyin.

Uyarı

Genel bir öneri olarak, tek tek .class dosyaları değil dosyaları kullanın.jar. Bu, Java'da yaygın bir uygulamadır ve genel deneyimi kolaylaştırır. Ayrıca bkz. Sınıf dosyalarından Java .jar dosyası oluşturma.

Sınıf yolu kullanma

Temel ilkeler

Sql Server'da Java yürütülürken bazı temel ilkeler aşağıdadır.

  • Derlenmiş özel Java sınıfları, Java sınıf yolunuzdaki .class dosyalarda veya .jar dosyalarda bulunmalıdır. CLASSPATH parametresi, derlenmiş Java dosyalarının yolunu sağlar.

  • Çağırdığınız Java yöntemi saklı yordamdaki script parametresinde sağlanmalıdır.

  • Sınıf bir pakete aitse, packageName sağlanmalıdır.

  • params bir Java sınıfına parametre geçirmek için kullanılır. Bağımsız değişken gerektiren bir yöntemin çağrılması desteklenmez. Bu nedenle, bağımsız değişken değerlerini yönteminize geçirmenin tek yolu parametrelerdir.

Uyarı

Bu not, SQL Server 2019 (15.x) ve sonraki sürümlerde Java'ya özgü desteklenen ve desteklenmeyen işlemleri yeniden ifade eder. Saklı yordamda giriş parametreleri desteklenirken çıkış parametreleri desteklenmez.

Java sınıfını çağırma

sp_execute_external_script sistem saklı yordamı, Java çalışma zamanını çağırmak için kullanılan arabirimdir. Aşağıdaki örnekte Java uzantısının kullanıldığı ve sp_execute_external_script yol, betik ve özel kodunuzu belirtmek için parametreler gösterilmektedir.

Uyarı

Çağrılacak yöntemi tanımlamanız gerekmez. Varsayılan olarak, adlı execute bir yöntem çağrılır. Bu, SQL Server için Java için Microsoft Genişletilebilirlik SDK'sını izlemeniz ve Java sınıfınızda bir yürütme yöntemi uygulamanız gerektiği anlamına gelir.

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'i ayarlama

Java sınıfınızı veya sınıflarınızı derleyip Java'nızda classpathbir .jar dosya oluşturduktan sonra, SQL Server Java uzantısının yolunu sağlamak için iki seçeneğiniz vardır:

  1. Dış kitaplıkları kullanma

    En kolay seçenek, dış kitaplıklar oluşturup kitaplığı jar'a işaret ederek SQL Server'ın sınıflarınızı otomatik olarak bulmasını sağlamaktır. Java için dış kitaplıkları kullanma

  2. Sistem ortam değişkenlerini kaydetme

    Bir sistem ortam değişkeni oluşturabilir ve sınıflarını içeren dosyanızın yollarını sağlayabilirsiniz .jar . adlı CLASSPATHbir sistem ortamı değişkeni oluşturun.

Dış kitaplığı kullanma

SQL Server 2019 (15.x) ve sonraki sürümlerinde, Windows ve Linux'ta Java dili için dış kitaplıkları kullanabilirsiniz. CREATE EXTERNAL LIBRARY DDL kullanarak sınıflarınızı bir .jar dosyada derleyebilir ve dosyayı ve diğer bağımlılıkları veritabanına yükleyebilirsiniz.jar.

Dış kitaplığı olan bir .jar dosyayı karşıya yükleme örneği:

CREATE EXTERNAL LIBRARY myJar
    FROM (CONTENT = '<local path to .jar file>')
    WITH (LANGUAGE = 'Java');
GO

Bir dış kitaplık oluşturduğunda, SQL Server java sınıflarına otomatik olarak erişebilir ve sınıf yolu için özel izinler ayarlamanız gerekmez.

Aşağıdaki kod, dış kitaplık olarak karşıya yüklenen bir paketten bir sınıftaki bir yöntemi çağırma örneğidir:

EXECUTE sp_execute_external_script
    @language = N'Java',
    @script = N'MyPackage.MyCLass',
    @input_data_1 = N'SELECT * FROM MYTABLE'
WITH RESULT SETS((column1 INT));

Daha fazla bilgi için bkz. CREATE EXTERNAL LIBRARY.

SQL Server'a geri döngü bağlantısı

JDBC üzerinden SQL Server'a geri dönmek için geri döngü bağlantısı kullanarak java'dan yürütülen sp_execute_external_scriptverileri okuyun veya yazın. ve OutputDataSet bağımsız değişkenlerini sp_execute_external_script kullanırken InputDataSet bunu kullanabilirsiniz. Windows'ta geri döngü bağlantısı oluşturmak için aşağıdaki örneği kullanın:

jdbc:sqlserver://localhost:1433;databaseName=Adventureworks;integratedSecurity=true;

Linux'ta geri döngü bağlantısı oluşturmak için JDBC sürücüsü, aşağıdaki Sertifikada tanımlanan üç bağlantı özelliği gerektirir:

İstemci-Sertifika-Kimlik Doğrulaması