JDBC - Veritabanı Bağlantıları

Uygun sürücüyü kurduktan sonra, JDBC kullanarak bir veritabanı bağlantısı kurma zamanı gelmiştir.

Bir JDBC bağlantısı kurmak için gereken programlama oldukça basittir. İşte bu basit dört adım -

  • Import JDBC Packages: Ekle import Java kodunuzdaki gerekli sınıfları içe aktarmak için Java programınıza ifadeler.

  • Register JDBC Driver: Bu adım, JVM'nin istenen sürücü uygulamasını belleğe yüklemesini sağlar, böylece JDBC isteklerinizi yerine getirebilir.

  • Database URL Formulation: Bu, bağlanmak istediğiniz veritabanına işaret eden uygun şekilde biçimlendirilmiş bir adres oluşturmak içindir.

  • Create Connection Object:Son olarak, gerçek veritabanı bağlantısını kurmak için DriverManager nesnesinin getConnection () yöntemine bir çağrıyı kodlayın .

JDBC Paketlerini İçe Aktar

Import ifadeler, Java derleyicisine kodunuzda başvurduğunuz sınıfları nerede bulacağını söyler ve kaynak kodunuzun en başına yerleştirilir.

SQL tablolarındaki verileri seçmenize, eklemenize, güncellemenize ve silmenize olanak tanıyan standart JDBC paketini kullanmak için kaynak kodunuza aşağıdaki içe aktarmaları ekleyin -

import java.sql.* ;  // for standard JDBC programs
import java.math.* ; // for BigDecimal and BigInteger support

JDBC Sürücüsünü Kaydedin

Sürücüyü kullanmadan önce programınıza kaydettirmelisiniz. Sürücünün kaydedilmesi, Oracle sürücüsünün sınıf dosyasının belleğe yüklendiği süreçtir, böylece JDBC arayüzlerinin bir uygulaması olarak kullanılabilir.

Bu kaydı programınızda yalnızca bir kez yapmanız gerekir. Bir sürücüyü iki yoldan biriyle kaydedebilirsiniz.

Yaklaşım I - Class.forName ()

Bir sürücüyü kaydetmenin en yaygın yaklaşımı, Java'nın Class.forName()yöntem, sürücünün sınıf dosyasını dinamik olarak belleğe yüklemek için otomatik olarak kaydeder. Bu yöntem tercih edilir çünkü sürücü kaydını yapılandırılabilir ve taşınabilir hale getirmenize izin verir.

Aşağıdaki örnek, Oracle sürücüsünü kaydetmek için Class.forName () kullanır -

try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex) {
   System.out.println("Error: unable to load driver class!");
   System.exit(1);
}

Kullanabilirsiniz getInstance() uyumlu olmayan JVM'lerde çalışma yöntemi, ancak daha sonra iki ekstra İstisna için aşağıdaki gibi kodlamanız gerekir -

try {
   Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
}
catch(ClassNotFoundException ex) {
   System.out.println("Error: unable to load driver class!");
   System.exit(1);
catch(IllegalAccessException ex) {
   System.out.println("Error: access problem while loading!");
   System.exit(2);
catch(InstantiationException ex) {
   System.out.println("Error: unable to instantiate driver!");
   System.exit(3);
}

Yaklaşım II - DriverManager.registerDriver ()

Bir sürücüyü kaydetmek için kullanabileceğiniz ikinci yaklaşım, statik DriverManager.registerDriver() yöntem.

Microsoft tarafından sağlanan gibi JDK uyumlu olmayan bir JVM kullanıyorsanız, registerDriver () yöntemini kullanmalısınız.

Aşağıdaki örnek, Oracle sürücüsünü kaydetmek için registerDriver () kullanır -

try {
   Driver myDriver = new oracle.jdbc.driver.OracleDriver();
   DriverManager.registerDriver( myDriver );
}
catch(ClassNotFoundException ex) {
   System.out.println("Error: unable to load driver class!");
   System.exit(1);
}

Veritabanı URL Formülasyonu

Sürücüyü yükledikten sonra, sürücüyü kullanarak bir bağlantı kurabilirsiniz. DriverManager.getConnection()yöntem. Kolay başvuru için, aşırı yüklenmiş üç DriverManager.getConnection () yöntemini listeleyeyim -

  • getConnection (Dize url'si)

  • getConnection (Dize url'si, Özellikler prop)

  • getConnection (Dize url'si, Dize kullanıcısı, Dize şifresi)

Burada her form bir veritabanı gerektirir URL. Veritabanı URL'si, veritabanınıza işaret eden bir adrestir.

Bir veritabanı URL'si formüle etmek, bir bağlantı kurmayla ilgili sorunların çoğunun meydana geldiği yerdir.

Aşağıdaki tablo, popüler JDBC sürücü adlarını ve veritabanı URL'sini listeler.

RDBMS JDBC sürücü adı URL biçimi
MySQL com.mysql.jdbc.Driver jdbc:mysql://hostname / databaseName
ORACLE oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@hostname: port Number: databaseName
DB2 COM.ibm.db2.jdbc.net.DB2Driver jdbc:db2:hostname: port Numarası / veritabanıAdı
Sybase com.sybase.jdbc.SybDriver jdbc:sybase:Tds:hostname: port Numarası / veritabanıAdı

URL biçiminde vurgulanan tüm bölümler statiktir ve veritabanı kurulumunuza göre yalnızca kalan bölümü değiştirmeniz gerekir.

Bağlantı Nesnesi Oluşturun

Üç biçimini listeledik DriverManager.getConnection() bir bağlantı nesnesi oluşturma yöntemi.

Kullanıcı adı ve şifre ile bir Veritabanı URL'si kullanmak

En sık kullanılan getConnection () biçimi, bir veritabanı URL'si, bir kullanıcı adı ve bir parola iletmenizi gerektirir :

Oracle'ı kullandığınızı varsayarsak thin sürücü, URL'nin veritabanı bölümü için bir host: port: databaseName değeri belirtirsiniz.

192.0.0.1 TCP / IP adresinde amrood ana bilgisayar adına sahip bir ana makineniz varsa ve Oracle dinleyiciniz 1521 numaralı bağlantı noktasını dinleyecek şekilde yapılandırılmışsa ve veritabanı adınız EMP ise, tam veritabanı URL'si -

jdbc:oracle:thin:@amrood:1521:EMP

Şimdi, uygun kullanıcı adı ve parola ile getConnection () yöntemini çağırmanız gerekir. Connection aşağıdaki gibi nesne -

String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
String USER = "username";
String PASS = "password"
Connection conn = DriverManager.getConnection(URL, USER, PASS);

Yalnızca Veritabanı URL'sini Kullanma

DriverManager.getConnection () yönteminin ikinci bir biçimi yalnızca bir veritabanı URL'si gerektirir -

DriverManager.getConnection(String url);

Ancak bu durumda, veritabanı URL'si kullanıcı adı ve parolayı içerir ve aşağıdaki genel biçime sahiptir:

jdbc:oracle:driver:username/password@database

Dolayısıyla, yukarıdaki bağlantı şu şekilde oluşturulabilir -

String URL = "jdbc:oracle:thin:username/password@amrood:1521:EMP";
Connection conn = DriverManager.getConnection(URL);

Veritabanı URL'si ve Özellikler Nesnesi Kullanma

DriverManager.getConnection () yönteminin üçüncü bir biçimi, bir veritabanı URL'si ve bir Özellikler nesnesi gerektirir -

DriverManager.getConnection(String url, Properties info);

Özellikler nesnesi, bir dizi anahtar kelime-değer çifti içerir. GetConnection () yöntemine yapılan bir çağrı sırasında sürücü özelliklerini sürücüye iletmek için kullanılır.

Önceki örneklerle yapılan aynı bağlantıyı yapmak için aşağıdaki kodu kullanın -

import java.util.*;

String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
Properties info = new Properties( );
info.put( "user", "username" );
info.put( "password", "password" );

Connection conn = DriverManager.getConnection(URL, info);

JDBC Bağlantılarını Kapatma

JDBC programınızın sonunda, her bir veritabanı oturumunu sonlandırmak için veritabanına olan tüm bağlantıları açıkça kapatmanız gerekir. Ancak, unutursanız, Java'nın çöp toplayıcısı eski nesneleri temizlediğinde bağlantıyı kapatacaktır.

Çöp toplamaya güvenmek, özellikle veritabanı programlamasında, çok zayıf bir programlama uygulamasıdır. Bağlantı nesnesiyle ilişkili close () yöntemiyle her zaman bağlantıyı kapatmayı alışkanlık haline getirmelisiniz.

Bir bağlantının kapatıldığından emin olmak için kodunuzda bir 'nihayet' bloğu sağlayabilirsiniz. Bir nihayet bloğu, istisna olup olmadığına bakılmaksızın her zaman yürütülür.

Yukarıdaki açılmış bağlantıyı kapatmak için aşağıdaki gibi close () yöntemini çağırmalısınız -

conn.close();

Bir bağlantının açıkça kapatılması DBMS kaynaklarını korur ve bu da veritabanı yöneticinizi mutlu eder.

Daha iyi bir anlayış için, JDBC - Örnek Kod eğitimimizi incelemenizi öneririz .