sql >> Databasteknik >  >> RDS >> Sqlserver

Ansluta SQL Server till en Java-databas

SQL Server kan ansluta till en icke-SQL Server-databas genom att använda en länkad server. Den länkade servermekanismen kan använda ett stycke mellanprogram som kallas en ODBC-drivrutin för att ansluta SQL Server till tredje parts backends som Oracle, MySQL och Salesforce.

Motsvarigheten till en ODBC-drivrutin för en Java-databas är en JDBC-drivrutin. Microsoft tillhandahåller inte ett länkat servergränssnitt som stöder JDBC. Snarare måste du använda det länkade ODBC-servergränssnittet (Microsoft OLE DB Provider för ODBC-drivrutiner) med en ODBC-drivrutin än vad som kan översättas mellan ODBC och JDBC. Till exempel ODBC-JDBC Gateway. ODBC-JDBC Gateway ansluter en applikation som använder ODBC till en databas som är tillgänglig via JDBC. Till applikationen är ODBC-JDBC Gateway en ODBC-drivrutin. För JDBC-drivrutinen är ODBC-JDBC Gateway en Java-applikation.

Använd ODBC-JDBC Gateway för att:

  • Använd en länkad server för att arbeta med JDBC-data, precis som om du arbetade med data lagrade i en SQL Server-tabell.
  • Integrera JDBC-data med SQL Server genom att använda SQL Server Integration Services (SSIS).

Installera och licensiera ODBC-JDBC Gateway

  1. Ladda ner Windows ODBC-JDBC Gateway.
  2. Installera och licensiera ODBC-JDBC Gateway på Windows-datorn där SQL Server/JDBC-drivrutinen är installerad.

    För installationsinstruktioner, se dokumentationen för ODBC-JDBC Gateway.

Konfigurera en ODBC-datakälla

Innan du kan använda ODBC-JDBC Gateway för att ansluta din ODBC-applikation till JDBC måste du konfigurera en ODBC-datakälla för systemet. En ODBC-datakälla lagrar anslutningsdetaljerna för måldatabasen.

Du konfigurerar ODBC-datakällor i ODBC Administrator, som ingår i Windows. Det finns två versioner av ODBC Administrator, en 32-bitars och 64-bitars. Du måste köra 32-bitarsversionen om din SQL Server-instans är 32-bitars. Du måste köra 64-bitarsversionen om din SQL Server-instans är 64-bitars.

För att ta reda på vilken version av SQL Server du har, anslut till din SQL Server-instans och kör sedan denna SQL-sats:

välj SERVERPROPERTY('edition')

För att köra 32-bitars ODBC Administrator skriver du:

i dialogrutan Kör i Windows
%windir%\syswow64\odbcad32.exe

För att köra 64-bitars ODBC Administrator skriver du:

i dialogrutan Kör i Windows
odbcad32.exe

Använd ODBC Administrator för att skapa din ODBC-JDBC Gateway-datakälla.

Skapa en ODBC-JDBC Gateway ODBC-datakälla

  1. Välj fliken System DSN och välj sedan Lägg till.
  2. I dialogrutan Skapa ny datakälla väljer du ODBC-JDBC Gateway och sedan Slutför.
  3. Slutför dialogrutan för ODBC-JDBC Gateway DSN Setup:
    Inställning Beskrivning
    DSN OJG_DSN
    Användarnamn Användarnamnet för din Java-backend, om det behövs.
    Lösenord Lösenordet för användarnamnet.
    Förarklass Se dokumentationen för din JDBC-drivrutin för värdet du behöver ange här.
    Klassväg Använd knappen Lägg till för att bläddra till din JDBC-drivrutin JAR / ZIP-fil.
    URL JDBC URL som används av din JDBC-drivrutin för att ansluta till Java-backend. Se dokumentationen till din JDBC-drivrutin för syntaxen som du behöver använda.
  4. Använd Test-knappen för att verifiera att du kan ansluta till Java-backend.

Exempel:Hämta JDBC-data genom att använda en länkad server

  1. I Microsoft SQL Server Management Studio, anslut till SQL Server-instansen som du vill skapa den länkade servern mot.

    Du måste logga in med ett konto som är medlem i SQL Server sysadmin fasta serverroll för att skapa en länkad server.

  2. Högerklicka på Serverobjekt. Från popup-menyn väljer du Ny> Länkad server.
  3. I rutan Länkad server skriver du "OJG".
  4. Från leverantörslistan väljer du Microsoft OLE DB-leverantör för ODBC-drivrutiner.
  5. I rutan Datakälla skriver du namnet på din ODBC-JDBC Gateway ODBC-datakälla och väljer sedan OK.

    SQL Server verifierar den länkade servern genom att testa anslutningen.

    • Om du får felet "Specificerad drivrutin kunde inte laddas på grund av systemfel 126:Den angivna modulen kunde inte hittas", välj Ja när du tillfrågas om du vill behålla den länkade servern. Du måste starta om din SQL Server-instans innan du kan använda den länkade servern. Om SQL Server redan kördes när du installerade ODBC-JDBC Gateway, kommer den inte att ha den senaste versionen av miljövariabeln System PATH. ODBC-JDBC Gateway Setup-programmet lägger till poster för drivrutinen till System PATH. Om du startar om instansen blir dessa ändringar tillgängliga för SQL Server, vilket gör att den kan ladda ODBC-JDBC Gateway.
    • Om du gjorde ett misstag när du angav datakällan för ODBC-JDBC Gateway får du felet "Datakällans namn hittades inte och ingen standarddrivrutin har angetts. Om du får det här felet väljer du Nej när du tillfrågas om du vill behålla den länkade servern. och redigera värdet i rutan Datakälla.
  6. Du kan fråga dina JDBC-data antingen genom att använda en:
    • Fyrdelat tabellnamn i en distribuerad fråga.

      Ett tabellnamn i fyra delar har formatet:

      servernamn .[databasnamn ].[schemanamn ].tabellnamn .

      Beroende på din Java-backend måste du utelämna databasens namn och schema. Till exempel:

      VÄLJ * från OJG...my_table
    • Genomgångsfråga i en OPENQUERY-funktion. Till exempel:
      SELECT * FROM OPENQUERY(OJG, 'SELECT * FROM my_table')

      SQL Server skickar genomkopplingsfrågor som otolkade frågesträngar till ODBC-JDBC Gateway. Detta innebär att SQL Server inte tillämpar någon form av logik på frågan eller försöker uppskatta vad den kommer att göra.


  1. PostgreSQL vs Linux-kärnversioner

  2. n:te percentilberäkningar i postgresql

  3. med hjälp av rownum-funktionen med> logga in i oracle

  4. 7 sätt att returnera alla tabeller med främmande nycklar i SQL Server