sql >> Database teknologi >  >> RDS >> Sqlserver

Tilslutning af SQL Server til en Java-database

SQL Server kan oprette forbindelse til en ikke-SQL Server-database ved at bruge en forbundet server. Den forbundne servermekanisme kan bruge et stykke middleware kendt som en ODBC-driver til at forbinde SQL Server til tredjeparts backends såsom Oracle, MySQL og Salesforce.

Det svarer til en ODBC-driver til en Java-database er en JDBC-driver. Microsoft leverer ikke en forbundet servergrænseflade, der understøtter JDBC. I stedet skal du bruge den ODBC-linkede servergrænseflade (Microsoft OLE DB Provider for ODBC-drivere) med en ODBC-driver, end der kan oversættes mellem ODBC og JDBC. For eksempel ODBC-JDBC Gateway. ODBC-JDBC Gateway forbinder et program, der bruger ODBC, til en database, der er tilgængelig via JDBC. Til applikationen er ODBC-JDBC Gateway en ODBC-driver. For JDBC-driveren er ODBC-JDBC Gateway en Java-applikation.

Brug ODBC-JDBC Gateway til at:

  • Brug en linket server til at arbejde med JDBC-data, ligesom hvis du arbejdede med data gemt i en SQL Server-tabel.
  • Integrer JDBC-data med SQL Server ved at bruge SQL Server Integration Services (SSIS).

Installation og licensering af ODBC-JDBC Gateway

  1. Download Windows ODBC-JDBC Gateway.
  2. Installer og licensér ODBC-JDBC Gateway på den Windows-maskine, hvor SQL Server/JDBC-driveren er installeret.

    For installationsinstruktioner, se dokumentationen til ODBC-JDBC Gateway.

Konfiguration af en ODBC-datakilde

Før du kan bruge ODBC-JDBC-gatewayen til at forbinde din ODBC-applikation til JDBC, skal du konfigurere en system-ODBC-datakilde. En ODBC-datakilde gemmer forbindelsesdetaljerne for måldatabasen.

Du konfigurerer ODBC-datakilder i ODBC Administrator, som er inkluderet i Windows. Der er to versioner af ODBC Administrator, en 32-bit og en 64-bit. Du skal køre 32-bit versionen, hvis din SQL Server-instans er 32-bit. Du skal køre 64-bit versionen, hvis din SQL Server-instans er 64-bit.

For at finde ud af, hvilken version af SQL Server du har, skal du oprette forbindelse til din SQL Server-instans og derefter køre denne SQL-sætning:

vælg SERVERPROPERTY('edition')

For at køre 32-bit ODBC Administrator skal du skrive:

i dialogboksen Kør i Windows
%windir%\syswow64\odbcad32.exe

For at køre 64-bit ODBC Administrator skal du skrive:

i dialogboksen Kør i Windows
odbcad32.exe

Brug ODBC Administrator til at oprette din ODBC-JDBC Gateway-datakilde.

Oprettelse af en ODBC-JDBC Gateway ODBC-datakilde

  1. Vælg fanen System DSN, og vælg derefter Tilføj.
  2. Vælg ODBC-JDBC Gateway i dialogboksen Opret ny datakilde, og vælg derefter Udfør.
  3. Fuldfør dialogboksen ODBC-JDBC Gateway DSN Setup:
    Indstilling Beskrivelse
    DSN OJG_DSN
    Brugernavn Brugernavnet til din Java-backend, hvis det kræves.
    Adgangskode Adgangskoden til brugernavn.
    Førerklasse Se din JDBC-driverdokumentation for den værdi, du skal indtaste her.
    Klassesti Brug knappen Tilføj til at gennemse til din JDBC-driver JAR / ZIP-fil.
    URL JDBC-URL'en, der bruges af din JDBC-driver til at oprette forbindelse til Java-backend. Se din JDBC-driverdokumentation for den syntaks, du skal bruge.
  4. Brug knappen Test til at bekræfte, at du kan oprette forbindelse til Java-backend.

Eksempel:Hent JDBC-data ved at bruge en sammenkædet server

  1. I Microsoft SQL Server Management Studio skal du oprette forbindelse til den SQL Server-instans, du vil oprette den sammenkædede server imod.

    Du skal logge på med en konto, der er medlem af SQL Server sysadmin faste serverrolle for at oprette en linket server.

  2. Højreklik på Serverobjekter. Fra pop op-menuen skal du vælge Ny> Sammenkædet server.
  3. Indtast "OJG" i feltet Forbundet server.
  4. Vælg Microsoft OLE DB Provider til ODBC-drivere på listen Udbyder.
  5. Indtast navnet på din ODBC-JDBC Gateway ODBC-datakilde i feltet Datakilde, og vælg derefter OK.

    SQL Server verificerer den sammenkædede server ved at teste forbindelsen.

    • Hvis du får fejlen "Specificeret driver kunne ikke indlæses på grund af systemfejl 126:Det angivne modul kunne ikke findes", skal du vælge Ja, når du bliver bedt om at beholde den linkede server. Du skal genstarte din SQL Server-instans, før du kan bruge den sammenkædede server. Hvis SQL Server allerede kørte, da du installerede ODBC-JDBC Gateway, vil den ikke have den seneste version af System PATH-miljøvariablen. ODBC-JDBC Gateway Setup-programmet tilføjer indgange for driveren til System PATH. Genstart af forekomsten gør disse ændringer tilgængelige for SQL Server, så den kan indlæse ODBC-JDBC Gateway.
    • Hvis du lavede en fejl, da du specificerede ODBC-JDBC Gateway-datakilden, får du fejlen "Datakildenavn ikke fundet og ingen standarddriver angivet. Hvis du får denne fejl, skal du vælge Nej, når du bliver bedt om at beholde den linkede server. og rediger værdien i feltet Datakilde.
  6. Du kan forespørge på dine JDBC-data enten ved at bruge en:
    • Firedelt tabelnavn i en distribueret forespørgsel.

      Et tabelnavn i fire dele har formatet:

      servernavn .[databasenavn ].[skemanavn ].tabelnavn .

      Afhængigt af din Java-backend skal du udelade databasenavnet og skemaet. For eksempel:

      VÆLG * fra OJG...my_table
    • Pass-through-forespørgsel i en OPENQUERY-funktion. For eksempel:
      SELECT * FROM OPENQUERY(OJG, 'SELECT * FROM my_table')

      SQL Server sender pass-through-forespørgsler som ufortolkede forespørgselsstrenge til ODBC-JDBC Gateway. Dette betyder, at SQL Server ikke anvender nogen form for logik til forespørgslen eller forsøger at estimere, hvad den forespørgsel vil gøre.


  1. Opret en SSH-tunnel til MySQL-fjernadgang

  2. Applikationen går ned ved installation med fejl sqlite3_exec - Kunne ikke indstille synkron tilstand =1(Normal)

  3. Hvordan kan jeg kalde en SQL Stored Procedure ved hjælp af EntityFramework 7 og Asp.Net 5

  4. Sådan får du Record med Max Value i MySQL