Skip to main content

JDBC ile Java MySQL Bağlantısı ve Veritabanı İşlemleri

JDBC(Java Datebase Connectivity)
Java MySQL bağlantısı kurabilmek için veritabanı ve kodumuz arasında bir köprü görevi üstlenir.JDBC ile veri tabanımız üzerinde SELECT , INSERT , DELETE , UPDATE gibi SQL sorguları çalıştırabilir ve ResultSet olarak dönen verileri yazdığımız uygulamalar içerisinde kullanabiliriz.

Burada anlatılanlarda MySQL kurulumu tamamlanmış ve ilgili tablolar oluşturulmuş farz edildi.Java MySQL bağlantısı kurabilmek için AppServ veya diğer MySQL sunucu uygulamalarını kurabilirsiniz.

JDBC’yi Netbeans Projesine Ekleme

Herhangi bir indirme yapmaya gerek olmadan , projemizin altında bulunan Libraries’e sağ tıklayıp , Add Library -> MySQL JDBC Driver’ı seçerek ekleyin.Resimli anlatım ;

JDBC bağlantısı bu kadar.

JDBC üzerinden veri tabanı işlemlerini gerçekleştirebilmemiz için bilmemiz gereken 4 adet ana sınıf vardır.Bu sınıfları ve kodları açıklayalım.

Connection Oluşturulması

Connection sınıfı veritabanına bağlanmamız için parametreleri tutar.JDBC, işlem için Connection sınıfından türemiş bir nesne ister.Örnek Connetion kodu ;

String url= "jdbc:mysql://localhost:3306/db_ismim";
String kullaniciAdi = "root";
String sifre="Kodlar.Net";
Class.forName("com.mysql.jdbc.Driver");
con = (Connection) DriverManager.getConnection(url,kullaniciAdi,sifre);

Veritabanı bilgilerimizi DriverManger.getConnection()’a girerek Connection nesnesi oluşturmuş olduk.Statement nesnesini elde etmek için bu con nesnesine ihtiyacımız olacak.

Statement Oluşturulması

Statement oluşturduğumuz SQL sorgularının veritabanı üzerinde çalıştırılmasını sağlayan yapıdır.Statement ve PreparedStatement temel olarak aynı işe yaparlar ancak oluşturulma da ve kullanımda küçük farklılıkları mevcuttur.Örnek Statement kodu ;

String sorgu="DELETE FROM futbolcular Where FormaNo=56";
Statement statement = con.createStatement();
int silinen= statement.executeUpdate(sorgu);

Buruda statement.executeUpdate(sorgu); komutu ile FormaNo 56 olan futbolcuyu veritabanından sildik ve kayıt silinme sayısını silinen adlı değişkenine aktardık.

PreparedStatement Oluşturması

PreparedStatement’ın Statement’e göre avantajları bulunuyor.Statement’de her silinecek değer için yeni bir sorgu oluşturmak gerekecek.PreparedStatement ise genel bir sorgu oluşturup değişken değerini paremetre olarak alır.Örnek kodumuz ;

String sorgu="DELETE FROM futbolcular Where FormaNo=?"; 
PreparedStatement prepared=con.createStatement(sorgu);
prepared.setInt(1,99); // 1 ilk soru işareti anlamına gelir , 99 ise soru işaretinin değeri
int sonuc=prepared.executeUpdate();

Görüldüğü üzere PreparedStatement daha güzel bir kod yazımına sahiptir.Ayrıca performans olarak Statement’den daha hızlıdır.

ResultSet Oluşturulması

Oluşturduğumuz Statement’ler veya PreparedStatement’ler üzerinde executeQuery() fonksiyonunu çalıştırdığımızda dönecek değerleri alabilmemiz için ResultSet tipinde bir nesne tanımlamamız gerekiyor.Eğer executeQuery() kullanırsak bize veritabanından bilgi döner , executeUpdate() kullandığımızda ise çalıştırdığımız sorgunun etkilediği satır sayısını int olarak döndürür.Örnek kod ;


ResultSet rs=prepared.executeQuery();
while(rs.next()){
String x=rs.getString("kullanici_adi"); // satırdaki kullanici_adi alanini getirir.
int idNumarasi=rs.getInt("id");      //satirdaki id alanini getirir.
}

Burada gelen satırlar üzerinde next() fonksiyonu ile geziyoruz.Eğer ilk kez çalıştırıldığı zaman false dönerse gönderdiğimiz sorguya uygun veri tablomuzda bulunmuyor demek.ResultSet üzeride uygulayabileceğimiz diğer bazı fonksiyonlar ;

Previous() : ResultSet nesnesinde imleci bir önceki satıra taşır.

First() : ResultSet nesnesinde imleci ilk satıra taşır.

Last() : ResultSet nesnesinde imleci son satıra taşır.

Bir yazımızın daha sonuna geldik.Veritabanı sorgularında zorlanıyorsanız sitemizdeki SQL kategorsini ziyaret edebilirsiniz.

Mert İnal

Programlamayı ve teknoloji seviyorum.Kocaeli Üniversitesi Bilgisayar Mühendisliği 3.sınıf öğrencisiyim.Bu siteyi programlama konusunda Türkçe içerik biriktirmek ve eksik olduğum konuları yazarak öğrenmek üzerine kurduk.Kodlar.Net ekibi zengin içerikler ile bir programlama arşivi biriktirmeyi hedefler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir