Ana Sayfa Yazılım Java ile MySQL Veritabanına Bağlanma

Java ile MySQL Veritabanına Bağlanma

746
1

Java, JDBC’yi Java SDK’nın bir parçası olarak sağlar. Bu yazımızda Java ile MySQL veritabanına bağlanma ve onunla sorgulama yapma detaylarına göz atalım.

Java, Java SDK’nın (Yazılım Geliştirme Kiti) bir parçası olarak JDBC’yi (Java Veritabanı Bağlantısı) sağlar. Bu API’yi kullanarak ilişkisel bir veritabanına bağlanmak ve sorgulama, ekleme, güncelleme ve kayıt silme gibi genel işlemleri gerçekleştirmek çok kolaydır. Çekirdek JDBC API’si java’da bulunurken, MySQL veya SQL Server gibi belirli bir veritabanına bağlanmak için veritabanı sürücüsü olarak bilinen ek bir bileşen gerekir. Bu veritabanı sürücüsü, çekirdek JDBC çağrılarını bu veritabanı tarafından anlaşılan bir biçime çeviren bir yazılım bileşenidir. Bu yazımızda MySQL veri tabanına bağlanmanın detaylarına ve bununla nasıl birkaç sorgu yapılacağına göz atalım.

MySQL Veritabanı Sürücüsü

Yukarıda açıklandığı gibi, bir MySQL veritabanına bağlanmak için MySQL için JDBC sürücüsüne ihtiyacınız vardır. Buna Bağlayıcı/J sürücüsü denir ve buradan MySQL sitesinden indirilebilir.

ZIP (veya TAR.GZ) dosyasını indirdikten sonra, arşivi çıkarın ve JAR dosyasını mysql-connector-java– bin.jar dosyasını uygun bir konuma kopyalayın. Bu dosya, MySQL JDBC Sürücüsünü kullanan herhangi bir kodu çalıştırmak için gereklidir.

Örnek Veritabanı Oluşturma

MySQL Veritabanına Nasıl Bağlanılır

MySQL veritabanını indirdiğinizi ve erişiminizin olduğu yerde düzgün bir şekilde kurduğunuzu varsayalım. Bağlanmak ve sorguları gerçekleştirmek için kullanabilmemiz için örnek bir veritabanı oluşturalım.

Seçtiğiniz bir istemciyi kullanarak veritabanına bağlanın ve örnek bir veritabanı oluşturmak için aşağıdaki ifadeleri çalıştırın.

create database sample;

Ayrıca veritabanına bağlanmak için bir kullanıcı adı ve şifreye ihtiyacımız var. (Yönetici olarak bağlanmak istemiyorsanız, bu genellikle kötü bir fikirdir).

Aşağıdaki, çalıştığı makineden (localhost tarafından belirtilir) MySQL veritabanına güvenlipwd parolasını kullanarak bağlanacak testuser adında bir kullanıcı oluşturur.

create user 'testuser'@'localhost' identified by 'securepwd';

Başka bir makinede (uzaktanmc adlı) çalışan bir veritabanına bağlanıyorsanız, aşağıdakileri kullanmanız gerekir (remotemc bir ana bilgisayar adı veya bir ip adresi olabilir):

create user 'testuser'@'remotemc' identified by 'securepwd';

Artık kullanıcı adı ve şifre oluşturulduğuna göre, daha önce oluşturulan örnek veritabanına erişim izni vermemiz gerekiyor.

grant all on sample.* to 'testuser'@'localhost';

Veya veritabanı uzaksa:

grant all on sample.* to 'testuser'@'remotemc';

Şimdi aynı parola ile oluşturduğunuz kullanıcı olarak veritabanına bağlanabildiğinizi doğrulamalısınız. Tüm izinlerin doğru olduğundan emin olmak için bağlandıktan sonra aşağıdaki komutları da çalıştırabilirsiniz.

create table joe(id int primary key auto_increment, name varchar(25));
drop table joe;

Java Sınıfı Yolunu Ayarlama

Şimdi Java’dan MySQL’e nasıl bağlanılacağının detaylarına geçelim. İlk adım, veritabanı sürücüsünü yüklemektir. Bu, aşağıdakileri uygun bir yerde çağırarak yapılır.

Class.forName("com.mysql.jdbc.Driver");

Kod bir istisna atabilir, böylece onunla uğraşmayı düşünüyorsanız yakalayabilirsiniz.

try {
  Class.forName("com.mysql.jdbc.Driver");
} catch(ClassNotFoundException ex) {
  // use the exception here
}

Bu kodu sınıfta statik bir blokta çağırmak çok yaygındır. Bu nedenle sürücü yüklenemezse program hemen başarısız olur.

public class Sample
{
  static {
    try {
      Class.forName("com.mysql.jdbc.Driver");
    } catch(ClassNotFoundException ex) {
      System.err.println("Unable to load MySQL Driver");
    }
  }
}

Elbette, sürücüyü bulabilmek için, programın aşağıdaki gibi sınıf yoluna dahil olan JAR sürücüsü ile çağrılması gerekir.

java -cp mysql-connector-java-<sürüm>-bin.jar:...
<çalıştırılacak sınıf>

Java’dan MySQL’e Bağlanmak

Java’dan MySQL sürücüsünü yüklemenin ayrıntılarını çözdüğümüze göre, şimdi veritabanına bağlanalım. Veritabanı bağlantısı oluşturmanın bir yolu DriverManager’ı kullanmaktır.

String jdbcUrl = ...;
Connection con = DriverManager.getConnection(jdbcUrl);

Ve jdbcUrl nedir? Veritabanının bulunduğu sunucu, kullanıcı adı vb. dahil olmak üzere bağlantının ayrıntılarını gösterir. İşte örneğimiz için örnek bir URL.

String jdbcUrl = “jdbc:mysql://localhost/sample?user=testuser&password=secrepwd”;

Ana bilgisayar adı ( localhost ), kullanıcı adı ve şifre dahil olmak üzere bağlantı için gereken tüm parametreleri dahil ettiğimize dikkat edin . (Bunun gibi bir parola eklemek iyi bir uygulama DEĞİLDİR, alternatifler için aşağıya bakın.)

Bu jdbcUrl’yi kullanarak, bağlantıyı kontrol etmek için eksiksiz bir program burada.

public class Sample { static { try { Class.forName(“com.mysql.jdbc.Driver”); } catch(ClassNotFoundException ex) { System.err.println(“Unable to load MySQL Driver”); } } static public void main(String[] args) throws Exception { String jdbcUrl = “jdbc:mysql://localhost/sample?user=testuser&password=securepwd”; Connection con = DriverManager.getConnection(jdbcUrl); System.out.println(“Connected!”); con.close(); } }

Veritabanı bağlantısının bir programda değerli bir kaynak olduğunu ve yukarıdaki gibi düzgün bir şekilde kapatılması gerektiğini unutmayın. Ancak yukarıdaki kod, bir istisna olması durumunda bağlantıyı kapatmaz. Normal veya anormal bir çıkışta bağlantıyı kapatmak için aşağıdaki düzeni kullanın:

try(Connection con = DriverManager.getConnection(jdbcUrl)) {
  System.out.println("Connected!");
}

Yukarıda belirtildiği gibi, şifreyi JDBC URL’sine gömmek kötü bir fikirdir. Kullanıcı adı ve şifreyi doğrudan belirtmek için bunun yerine aşağıdaki bağlantı seçeneğini kullanabilirsiniz.

String jdbcUrl = “jdbc:mysql://localhost/sample”; try(Connection con = DriverManager.getConnection(jdbcUrl, “testuser”, “securepwd”)) { }

Java’dan Veritabanı Sorgulama

Artık veritabanıyla bağlantı kurulduğuna göre, veritabanı sürümünü sorgulama gibi bir sorgunun nasıl gerçekleştirileceğini görelim:

select version();

Java’da aşağıdaki gibi bir sorgu yürütülür. Bir Statement nesnesi oluşturulur ve bir ResultSet döndüren executeQuery() yöntemi kullanılarak bir sorgu yürütülür .

String queryString = "select version()";
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(queryString);

ResultSet’ten sürümü aşağıdaki gibi yazdırın . 1 , 1’den başlayarak sonuçlardaki sütunun indeksini ifade eder.

while ( rset.next()) {
  System.out.println("Version: " + rset.getString(1));
}

Sonuçlar işlendikten sonra nesnelerin kapatılması gerekir.

rset.close();
stmt.close();

Ve bu, Java’dan MySQL Veritabanına Bağlama ve basit bir sorgu gerçekleştirmek için gereken her şeyi kapsar.

1 Yorum