DBX

JDBC Eklentisi

DBX varsayılan olarak yerel Rust veritabanı sürücülerini kullanır. JDBC isteğe bağlıdır: DBX'in yerel olarak desteklemediği bir veritabanına bağlanmanız ya da özellikle üreticinin JDBC sürücüsüne ihtiyacınız olduğunda JDBC eklentisini kurun.

JDBC eklentisi ana DBX uygulamasıyla birlikte gelmez ve üreticinin JDBC sürücülerini içermez. Önce DBX JDBC eklentisini kurun, ardından veritabanı üreticisinin JDBC sürücü JAR dosyasını içe aktarın.
Başarılı bir JDBC bağlantısı, yerel bir DBX profilinin her yeteneğini kapsadığı anlamına gelmez. Nesne ağaçları, kaynak tanımları, yapı düzenleme, içe aktarma, aktarım ve yönetim görünümleri; JDBC meta verisine, algılanan geçerli veritabanı türüne ve sürücü yetenek bildirimine bağlıdır. Bilinmeyen motorlar genel JDBC yetenekleriyle çalışır.

Masaüstü, JAR dosyalarını yerel makineden içe aktarır. Docker/Web, JAR dosyalarını ve eklentiyi sunucu veri dizinine kurar; tarayıcının bulunduğu makinedeki yollar sunucu tarafından doğrudan okunamaz ve yapılandırma taşıması sürücü dosyalarını otomatik taşımaz.

JDBC Ne Zaman Kullanılır

Önce MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, ClickHouse, SQL Server, Oracle, DM ve GaussDB gibi yerleşik DBX veritabanı türlerini tercih edin.

JDBC'yi şu durumlarda kullanın:

  • Hedef veritabanı DBX'e yerleşik değilse
  • Yerel sürücü, üreticiye özgü bir davranışı kapsamıyorsa
  • Kurumunuz üreticinin JDBC sürücüsünü standart olarak kullanıyorsa
  • Dameng DM, H2, DB2, Snowflake ya da SQLite gibi veritabanlarına JDBC üzerinden bağlanmak istiyorsanız

Gereksinimler

ÖğeZorunluNotlar
DBX JDBC eklentisiEvetDBX ayarlarından kurulur; DBX'in JDBC çağırmasını sağlar
Java çalışma zamanıEvetYerel makine java çalıştırabilmelidir; Java 17 ya da üstü önerilir
Üreticinin JDBC sürücü JAR'ıEvetÖrneğin PostgreSQL, MySQL, Dameng DM, Oracle, H2, SQLite ya da başka bir üretici sürücüsü
JDBC URL'siEvetURL genellikle sunucu, port, veritabanı adı ve parametreleri içerir
Kullanıcı adı/parolaDuruma göreDosya veritabanları ya da bazı kimlik doğrulama modları bunlara ihtiyaç duymayabilir
Sürücü sınıfıGenellikle isteğe bağlıModern JDBC sürücülerinin çoğu kendini kaydeder; yalnızca otomatik keşif başarısız olduğunda girin

1. Adım: Java Kurun

JDBC eklentisi bir Java programıdır, bu yüzden makinenizde bir Java çalışma zamanı gerekir. Kurulumdan sonra bir terminalde doğrulayın:

java -version

Komut bulunamıyorsa önce Java kurun. DBX önce JAVA_HOME değişkenine, sonra yaygın sistem konumlarına ve PATH üzerindeki java komutuna bakar.

Homebrew ile kurun:

brew install openjdk

java -version hâlâ çalışmıyorsa PATH ya da JAVA_HOME ayarını yapılandırmak için Homebrew çıktısını izleyin.

Temurin, Oracle JDK ya da Microsoft Build of OpenJDK kurun. Kurulumdan sonra DBX'i yeniden başlatın ve doğrulayın:

java -version

Debian / Ubuntu:

sudo apt install openjdk-17-jre

Fedora:

sudo dnf install java-17-openjdk

2. Adım: DBX JDBC Eklentisini Kurun

DBX Masaüstü'nde:

  1. Ayarlar'ı açın
  2. JDBC Sürücüleri bölümüne gidin
  3. JDBC Eklentisini Kur'a tıklayın

Kurulumdan sonra DBX şuna benzer bir durum gösterir:

Kurulu: v0.1.0

DBX JDBC eklentisinin kendi sürümü vardır. DBX uygulama sürümüyle eşleşmesi gerekmez. DBX'i güncellemek JDBC eklentisini otomatik kurmaz ve eklentiyi elle kaldırırsanız DBX bunu arkanızdan yeniden kurmaz.

3. Adım: Üreticinin JDBC Sürücüsünü İndirin

DBX üreticilerin JDBC sürücülerini otomatik indirmez. .jar dosyasını veritabanı üreticisinin web sitesinden ya da bir Maven deposundan indirin.

Yaygın örnekler:

VeritabanıYaygın Maven DosyasıSürücü SınıfıJDBC URL Örneği
PostgreSQLorg.postgresql:postgresqlorg.postgresql.Driverjdbc:postgresql://localhost:5432/postgres
MySQLcom.mysql:mysql-connector-jcom.mysql.cj.jdbc.Driverjdbc:mysql://localhost:3306/test
MariaDBorg.mariadb.jdbc:mariadb-java-clientorg.mariadb.jdbc.Driverjdbc:mariadb://localhost:3306/test
Dameng DMcom.dameng:DmJdbcDriver8dm.jdbc.driver.DmDriverjdbc:dm://localhost:5236
SQL Servercom.microsoft.sqlserver:mssql-jdbccom.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://localhost:1433;databaseName=master
Oraclecom.oracle.database.jdbc:ojdbc11oracle.jdbc.OracleDriverjdbc:oracle:thin:@//localhost:1521/ORCLPDB1
H2com.h2database:h2org.h2.Driverjdbc:h2:/tmp/dbx-h2-test
SQLiteorg.xerial:sqlite-jdbcorg.sqlite.JDBCjdbc:sqlite:/Users/me/test.db
ClickHousecom.clickhouse:clickhouse-jdbccom.clickhouse.jdbc.ClickHouseDriverjdbc:clickhouse://localhost:8123/default
DB2com.ibm.db2:jcccom.ibm.db2.jcc.DB2Driverjdbc:db2://localhost:50000/SAMPLE
Snowflakenet.snowflake:snowflake-jdbcnet.snowflake.client.jdbc.SnowflakeDriverjdbc:snowflake://account.region.snowflakecomputing.com/?db=DEMO
JDBC URL parametreleri veritabanına ve sürücü sürümüne göre değişir. Üreticinin belgelerini izleyin. Bir sürücü birden çok JAR'a bağlıysa gereken tüm JAR yollarını içe aktarın ya da listeleyin.
Oracle için com.oracle.database.nls:orai18n paketini de ojdbc ile aynı sürümde içe aktarın. Temel ojdbc jar dosyası ZHS16GBK gibi çok baytlı karakter kümelerini dönüştüremez, bu yüzden onsuz tablo ve sütun açıklamaları yüklenemez. com.oracle.database.jdbc:ojdbc* paketinin Maven kurulumları uygun orai18n jar dosyasını otomatik indirir. DBX'in yerleşik Oracle bağlantısı (varsayılan sürücü) bu karakter kümelerini ek bir JAR olmadan destekler.

4. Adım: JDBC Sürücü JAR'larını İçe Aktarın

DBX'te:

  1. Ayarlar'ı açın
  2. JDBC Sürücüleri bölümüne gidin
  3. JDBC sürücü JAR'ları bölümünde indirdiğiniz .jar dosyasını seçin

Ayrıca yerel bir JAR yolunu yapıştırıp içe aktarabilirsiniz. DBX, içe aktarılan JAR dosyalarını uygulama veri dizinine kopyalar ve yeni JDBC bağlantıları bunları sürücü açılır listesinden seçebilir.

Bir sürücüyü içe aktarmak yalnızca yerel dosyaları kopyalar. Sistem Java kurulumunuzu değiştirmez, veritabanı istemcileri kurmaz ve sürücüyü hiçbir yere yüklemez.

5. Adım: Bir JDBC Bağlantısı Oluşturun

Yeni bir bağlantı oluşturup JDBC'yi seçin.

AlanNe girilir
AdH2 Test, DM Dev ya da Oracle Dev gibi görünen ad
JDBC URL'siTam JDBC URL'si, örneğin jdbc:postgresql://localhost:5432/postgres
Kullanıcı adıVeritabanı kullanıcı adı; gerekmiyorsa boş bırakın
ParolaVeritabanı parolası; gerekmiyorsa boş bırakın
Sürücü Sınıfı (isteğe bağlı)Yalnızca otomatik keşif başarısız olursa girin, örneğin org.postgresql.Driver
Sürücü JAR'larıAçılır listeden içe aktarılmış bir sürücüyü seçin ya da yerel JAR yollarını girin

JDBC URL'leri genellikle sunucuyu, portu ve veritabanı adını zaten içerir, bu yüzden JDBC formu ayrı sunucu ve port alanları göstermez.

Formu doldurduktan sonra Test Et'e tıklayın. Test başarılıysa Kaydet'e tıklayın; bağlantı kenar çubuğunda görünür.

Örnek: Dameng DM

DBX'te yerleşik bir DM ODBC bağlantı türü zaten var. Resmî Dameng JDBC sürücüsünü tercih ederseniz JDBC eklentisini kullanın.

  1. DBX JDBC eklentisini kurun
  2. Java'yı kurun
  3. Dameng JDBC sürücü JAR dosyasını DM kurulum dizininizden ya da Maven deposundan alın, örneğin DmJdbcDriver8.jar veya DmJdbcDriver11.jar
  4. JAR dosyasını Ayarlar → JDBC Sürücüleri bölümünde içe aktarın
  5. Yeni bir bağlantı oluşturup JDBC'yi seçin
  6. Şunları doldurun:
AlanDeğer
JDBC URL'sijdbc:dm://127.0.0.1:5236
Kullanıcı adıSYSDBA
ParolaDM parolanız
Sürücü Sınıfı (isteğe bağlı)dm.jdbc.driver.DmDriver
Sürücü JAR'larıİçe aktarılan DM JDBC JAR'ını seçin

DM için dm.jdbc.driver.DmDriver değerini girmeniz önerilir; böylece bağlantı otomatik sürücü keşfi meta verisine bağlı kalmaz.

Örnek: H2 Yerel Dosya Veritabanı

H2, JDBC akışını doğrulamak için iyi bir yoldur.

  1. DBX JDBC eklentisini kurun
  2. H2 JDBC sürücü JAR dosyasını indirin
  3. Ayarlarda h2-*.jar dosyasını içe aktarın
  4. Yeni bir bağlantı oluşturup JDBC'yi seçin
  5. Şunları doldurun:
AlanDeğer
JDBC URL'sijdbc:h2:/tmp/dbx-h2-demo
Kullanıcı adısa
ParolaBoş bırakın
Sürücü Sınıfı (isteğe bağlı)org.h2.Driver
Sürücü JAR'larıİçe aktarılan H2 JAR'ını seçin

Kaydettikten sonra şunu deneyin:

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(100)
);

INSERT INTO users VALUES (1, 'Alice');

SELECT * FROM users;

Örnek: PostgreSQL

  1. PostgreSQL JDBC sürücü JAR dosyasını indirin
  2. Ayarlarda içe aktarın
  3. Yeni bir JDBC bağlantısı oluşturun
  4. Şunları doldurun:
AlanDeğer
JDBC URL'sijdbc:postgresql://localhost:5432/postgres
Kullanıcı adıpostgres
ParolaPostgreSQL parolanız
Sürücü Sınıfı (isteğe bağlı)org.postgresql.Driver
Sürücü JAR'larıİçe aktarılan PostgreSQL JAR'ını seçin

SSL gerekiyorsa JDBC URL'sine parametre ekleyin:

jdbc:postgresql://localhost:5432/postgres?sslmode=require

Sorun Giderme

JDBC eklentisi kurulumu başarısız oluyor

Ağınızın DBX GitHub Releases adresine erişip erişemediğini denetleyin. DBX proxy URL'lerini ve özgün GitHub URL'sini dener, ancak herkese açık proxy'ler yine de erişilemez olabilir. GitHub engelliyse başka bir ağ deneyin.

Java bulunamıyor

Bir terminalde doğrulayın:

java -version

Terminal çalışıyor ama DBX çalışmıyorsa DBX'i yeniden başlatın. macOS'ta Java yalnızca bir Homebrew yolunda kuruluysa JAVA_HOME ayarını yapılandırın.

No JDBC driver was discovered

Sürücü JAR'ı otomatik keşfedilemedi. Sürücü sınıfını elle girin, örneğin:

org.postgresql.Driver
com.mysql.cj.jdbc.Driver
dm.jdbc.driver.DmDriver
oracle.jdbc.OracleDriver

No suitable driver

JDBC URL'si ile sürücü büyük olasılıkla uyuşmuyor. Şunları denetleyin:

  • Seçili sürücü JAR'ı hedef veritabanına ait mi
  • JDBC URL öneki doğru mu; örneğin jdbc:postgresql:, jdbc:mysql:, jdbc:dm: ya da jdbc:oracle:
  • Sürücü sınıfının elle girilmesi gerekiyor olabilir

Bağlantı çalışıyor ama tablolar görünmüyor

JDBC meta verisi; veritabanı sürücüsüne ve hesap yetkilerine bağlıdır. Şunları denetleyin:

  • Hesap meta veriyi okuyabiliyor mu
  • JDBC URL'si beklenen veritabanını ya da şemayı gösteriyor mu
  • Tablolar farklı bir şemada olabilir
  • Sürücü, beklediğiniz nesneler için DatabaseMetaData destekliyor mu

Bir sürücü birden çok JAR gerektiriyor

Sürücü JAR'ları alanına her satıra bir JAR yolu girin ya da gereken her JAR'ı ayarlarda içe aktarıp kalan yolları elle ekleyin.

Kaldırma

Ayarlar → JDBC Sürücüleri bölümünde Kaldır'a tıklayın. DBX yalnızca JDBC eklentisini kaldırır, içe aktardığınız üretici sürücü JAR'larını korur; böylece eklentiyi daha sonra yeniden kurarsanız bunları tekrar içe aktarmanız gerekmez.

Geliştiriciler için: Eklenti Protokolü

DBX, eklenti çalıştırılabilirini başlatır ve stdin/stdout üzerinden JSON Lines istek ve yanıtları alışverişi yapar. Bir bağlantı kurulduktan sonra DBX, o bağlantıdaki sorgular ve meta veri istekleri için aynı eklenti işlemini yeniden kullanır.

Eklenti dizini bir manifest.json dosyası içermelidir:

{
  "id": "jdbc",
  "name": "DBX JDBC Plugin",
  "version": "0.1.0",
  "protocol_version": 1,
  "description": "Adds JDBC driver support.",
  "executable": "bin/dbx-jdbc-plugin",
  "drivers": [
    {
      "id": "jdbc",
      "label": "JDBC",
      "kind": "external",
      "database_type": "jdbc"
    }
  ]
}

Geçerli DBX uygulaması eklenti protokolü sürüm 1 destekler. DBX, bildiriminde farklı bir protokol sürümü belirten bir eklentiyi reddeder ve her eklenti isteğinin 30 saniyelik bir zaman aşımı vardır; böylece takılan bir sürücü işlemi uygulamayı süresiz engellemez.

İlk protokol; testConnection, connect, executeQuery, listDatabases, listSchemas, listTables ve getColumns işlemlerini destekler.

JDBC bağlantı yapılandırmaları jdbc_driver_class ve jdbc_driver_paths değerlerini saklar. Bir sürücü birkaç JAR gerektiriyorsa tüm yolları bağlantıya ekli tutun; böylece meta veri ve sorgu çağrıları aynı classpath'i kullanır.