包裝函式與介面

下載 JDBC 驅動程式

Microsoft JDBC Driver for SQL Server 支援的介面可讓您建立類別的 Proxy,而所支援的包裝函式則可讓您透過 Proxy 介面存取 Microsoft SQL Server Microsoft JDBC Driver for SQL Server 特有的 JDBC API 延伸模組。

包裝函式

Microsoft JDBC Driver for SQL Server 支援 java.sql.Wrapper 介面。 這個介面會提供一項機制,可讓您透過 Proxy 介面存取 Microsoft JDBC Driver for SQL Server 特有的 JDBC API 延伸模組。

java.sql.Wrapper 介面會定義兩個方法:isWrapperForunwrapisWrapperFor 方法會檢查指定的輸入物件是否實作這個介面。 unwrap 方法會傳回實作這個介面的物件,以便允許存取 Microsoft JDBC Driver for SQL Server 特有的方法。

isWrapperForunwrap 方法會公開如下:

介面

從 SQL Server JDBC Driver 3.0 開始,介面可供應用程式伺服器存取相關聯類別中的驅動程式特定方法。 應用程式可以透過建立 Proxy、公開介面中的 Microsoft JDBC Driver for SQL Server 專屬功能來包裝類別。 Microsoft JDBC Driver for SQL Server 支援擁有 Microsoft JDBC Driver for SQL Server 專屬方法與常數的介面,讓應用程式伺服器可以建立類別的 Proxy。

這些介面衍生自標準的 Java 介面,讓您在物件解除包裝之後,可以使用相同的物件存取驅動程式專屬功能或一般 Microsoft JDBC Driver for SQL Server 功能。

加入以下介面:

範例

描述

此範例示範如何從 DataSource 物件存取 Microsoft JDBC Driver for SQL Server 特定函數。 此 DataSource 類別可能已經由應用程式伺服器包裝。 若要存取 JDBC 驅動程式特定函式或常數,您可以解除包裝資料來源成為 SQLServerDataSource 介面,然後使用此介面中宣告的函式。

程式碼

import javax.sql.*;
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;

public class UnWrapTest {
   public static void main(String[] args) {
      // This is a test.  This DataSource object could be something from an appserver
      // which has wrapped the real SQLServerDataSource with its own wrapper
      SQLServerDataSource ds = new SQLServerDataSource();
      checkSendStringParametersAsUnicode(ds);
   }

   // Unwrap to the ISQLServerDataSource interface to access the getSendStringParametersAsUnicode function
   static void checkSendStringParametersAsUnicode(DataSource ds) {
      try {
         final ISQLServerDataSource sqlServerDataSource = ds.unwrap(ISQLServerDataSource.class);
         boolean sendStringParametersAsUnicode = sqlServerDataSource.getSendStringParametersAsUnicode();

         System.out.println("Send string as parameter value is:-" + sendStringParametersAsUnicode);

      } catch (SQLException sqlE) {
         System.out.println("Exception:-" + sqlE);
      }
   }
}

另請參閱

了解 JDBC 驅動程式資料類型