4 Temmuz 2013 Perşembe

Java ile MySQL Bağlantısı Kurmak





                Java ile Mysql ’e bağlanabilmek için öncelikle Connector\J kütüphanesini indirip projemize eklememiz gerekmektedir.Bu kütüphane Mysql ’in kendi sitesinde bulunmaktadır.Aşağıdaki linke tıklayarak .tar ya da .zip arşivini indirebilirsiniz.


   Windows için .zip indirmek uygun olacaktır.İndirdiğimiz .zip dosyasının içerisindeki jar dosyamızı  libraries üzerine sağ tıklayarak add jar/folder seçeneği ile ekleyebiliriz.Bunun haricinde NetBeans ’ in kendi içerisinde tanımlı Mysql Driver da bulunmaktadır.Bu kütüphaneyi direk eklemek için libraries—sağ tık—Add Library—MySQL JDBC Driver—Add Library de yapabiliriz..Daha sonra main kısmına aşağıdaki gibi yazıyorum:




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


               Burada eklediğim Connector\J kütüphanesinin içerisindeki Driver ’ in yolunu gösteriyorum.Ancak bunu yazınca altı kırmızı çizili hale geliyor.Mouse üzerine getirdiğimde bana “ClassNotFoundException” uyarısı veriyor. “Alt + Enter” tuşları ile try-catch içerisine alarak programın bu hatayı yakalamasını sağlıyorum.
Daha sonra yukarıdaki cümlemin hemen altına 

Connection con;

şeklinde Connection sınıfına bir nesne oluşturuyorum.Connection sınıfını da  import ediyorum.Sonra alt satıra geçip 


con = DriverManager.getConnection("jdbc:mysql://localhost:3306/deneme","root","12345");

seklinde yazıyorum.Burada ilk String ifade de url , ikinci String ifade de  kullanıcı , üçüncüde String ifade de ise şifre yazmaktadır.Mysql ‘im yerel sunucuda kurulu olduğu için ilk ifadede localhost yazmam gerekli. “3306” ise default portumuz.Aşağıdaki ise yukarıda yazdığımın genel ifadesi;


con = DriverManager.getConnection(String url,String ,String password);


                Yine altı kırmızı çizgiler oldu ve bu seferde derleyici bana bir SQLException hatası olabileceğini belirtiyor. “Alt + Enter” ile block try-catch içerisine alıyorum.Bağlantı işlemlerim tamam.Bağlantıyı kapatmak içinde “close();” metodunu kullanıyorum.Sonuç olarak aşağıdaki gibi bir kod ortaya çıktı;



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DatabaseDemo {
   
    public static void main(String[] args) {
        try {
           
                Class.forName("com.mysql.jdbc.Driver");
            Connection con;  
                con = DriverManager.getConnection("jdbc:mysql://localhost:3306/deneme","root","12345");
            con.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatabaseDemo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(DatabaseDemo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

Derlediğinizde hata almıyorsanız bağlantı işlemi gerçekleşmiş demektir.Mysql in çalıştığından emin olun yoksa derleyici hata verecektir.



Şimdi basit bir sorgu yaptirabiliriz.Bunun için öncelikle PreparedStatement nesnesi oluşturuyoruz.Bu nesneye prepareStatemen() metodu ile yapacağımız sorgunun cümlesini yazıyoruz:

PreparedStatement pr = con.prepareStatement("select * from kitap");

           Yukaridaki sql cümlesinde kitap isimli tablodaki bütün bilgiler sorgulanıyor. Sorgu sonucunu geri döndürmek için executeQuery() metodunu kullanıyoruz. Bu metod ResultSet tipinde veri döndürdüğü için bir tane ResultSet nesnesi oluşturuyoruz:

ResultSet rs = pr.executeQuery();  

            Mysql e bağlanıp veri çekebildiğinden emin olmak için konsola geri dönen verileri yazdırmak istiyorum , bunun için While() döngüsü oluşturuyorum ve konsolda yazdırıyorum: 

while(rs.next()){

                String isim = rs.getString(2);

                System.out.println(isim);

            }

           rs.getString(2) ifadesi sütunun numarasını belirtmektedir.Burada sütun sorgularken “1” den başladığına dikkat edelim. 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DatabaseDemo {
   
    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = null;
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/deneme","root","12345");
            PreparedStatement pr = con.prepareStatement("select * from kitap");
            ResultSet rs = pr.executeQuery();
            while(rs.next()){
                String isim = rs.getString(2);
                System.out.println(isim);
            }
            rs.close();
            pr.close();
            con.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatabaseDemo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(DatabaseDemo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

Ekran görüntüsü


0 yorum:

Yorum Gönder