Java Veri Tabanı Bağlantısı

SQL'in temellerini biliyorsunuz. Bu iyi. Ama bugün daha da iyi hissedeceksin. Bugün bir Java uygulamasından bir veritabanıyla nasıl çalışılacağını öğrenmeye başlayacaksınız.

Pek çok farklı DBMS vardır, bu nedenle Java'nın yaratıcıları bir Java uygulamasının veritabanlarıyla nasıl çalıştığını standartlaştırmaya karar verdiler. Ve bu standardı - JDBC : Java DataBase Connectivity olarak adlandırdılar .

JDBC'nin 3 ana arabirimi vardır:

  • Bağlantı - veritabanına bağlanmaktan sorumludur
  • Bildirim - veritabanını sorgulamaktan sorumludur
  • ResultSet - veritabanına yapılan sorgunun sonucundan sorumludur

Aslında hepsi bu. Ve tüm arayüzlerin tüm yöntemlerini bile öğrenmeyeceğiz. Yalnızca yavaş yavaş karmaşıklaştıracağımız çalışan örnekler.

JDBC, servlet'lerle çalışmaya biraz benzer. JDBC'nin yaratıcıları birkaç arayüz yazdılar ve buna gururla Java DataBase API adını verdiler. Ve bu arayüzlerin uygulanması ... DBMS'nin yaratıcılarına verildi. Orada nasıl uygulandığı - kimsenin umurunda değil. İyi çalışıyor.

JDBC'nin dört versiyonu vardır ve en sonuncusuna bakacağız. Ve en havalı olduğu için değil, en basit olduğu için.

JDBC Sürücü Yöneticisi

Java uygulaması ve veritabanı, JDBC Sürücüsü adı verilen bir kitaplık aracılığıyla birbirleriyle iletişim kurar. Bu, belirli bir DBMS için JDBC API'sini uygulayan bir dizi sınıftır.

Doğru JDBC sürücüsü, DriverManager adlı bir sınıf kullanılarak seçilir . Etkileşimleri aşağıdaki gibi temsil edilebilir:

Mesele şu ki, In-Memory-DB, No-SQL-DB veya hatta bir Android uygulamasında yerleşik bir veritabanı kullanabilirsiniz. Bir Java geliştiricisi olarak bu nüanslar sizi hiç ilgilendirmiyor. Sürücü Yöneticisi sizin için doğru JDBC sürücüsünü seçecek ve her şey saat gibi çalışacaktır.

Bu arada, bunu nasıl yapıyor?

MySQL sunucusuna bağlanma

MySQL Workbench aracılığıyla yerel bir SQL sunucusuna bağlanmak için neye ihtiyacınız olduğunu hatırlıyor musunuz? Eğer unuttuysam, o zaman sana hatırlatırım, üç şeye ihtiyacın vardı:

  • ev sahibi
  • giriş yapmak
  • şifre

Oturum açma adı ve parola ile her şey açık ve ana bilgisayar, hatırlarsanız, sunucunun bulunduğu bilgisayarın adıdır. Yerel bilgisayarınızda bulunuyorsa, ana bilgisayar adı olarak localhost belirtmeniz gerekir. Ya yerli değilse?

O zaman ... URL'yi kullanmanız gerekir. URL, Evrensel Kaynak Bulucu anlamına gelir . Ağdaki herhangi bir şeyin konumunu belirtmek için kullanılabilir: bir site, bir yazıcı, bir SQL sunucusu. Aslında URL, yerel SQL sunucusuna erişmek için de kullanılır. Şunun gibi görünüyor:

mysql://localhost:3306/db_scheme
  • mysql bir sunucu protokolüdür
  • localhost - ağdaki ana bilgisayar adı
  • 3306 - isteklerin yapıldığı bağlantı noktası
  • db_scheme - şema adı (veritabanı adı)

Not. Veritabanı adı atlanabilir. Ancak sunucu birçok veritabanı şemasını saklıyorsa, genellikle onlar için farklı kullanıcılar ve farklı erişim hakları oluşturulur. Ve SQL sunucusunda oturum açtığınız kullanıcının tüm veritabanlarına erişimi yoksa, erişiminiz olan belirli veritabanının adını kesinlikle belirtmeniz gerekir.

Bu url'nin sonunda, kurulmakta olan yeni veritabanı bağlantısı için parametre olarak kabul edilen çeşitli parametreler, kodlama türleri, saat dilimi olabilir.

Ayrıca, protokol bileşik olabilir. Veritabanı sunucusuyla tüm iletişim, SSH protokolünü kullanan şifreli bir kanal üzerinden yapılıyorsa, URL şu şekilde belirtilebilir:

ssh:mysql://localhost:3306/db_scheme

Bir protokol mutlaka harici bir program değildir. Örneğin, JNDI protokolünü kullanan bir sunucuyla çalışıyorsanız, bunu şu şekilde belirtebilirsiniz:

jndi:mysql://localhost:3306/db_scheme

JDBC API protokolünü kullanarak çalışmak istiyorsanız, şu şekilde yazmanız gerekir:

jdbc:mysql://localhost:3306/db_scheme

Bir veritabanı bağlantısı oluşturmaya çalıştığınızda, JDBC Sürücü Yöneticisi SQL-db-URL'nizi ayrıştırır ve protokol adından JDBC sürücü adını belirler. İşte çok küçük bir numara.