{"id":412,"date":"2015-02-16T10:42:00","date_gmt":"1970-01-01T00:00:00","guid":{"rendered":"http:\/\/www.yazilimmutfagi.com\/?p=412"},"modified":"2015-02-16T10:42:00","modified_gmt":"1970-01-01T00:00:00","slug":"java-ile-mysql-veritabani-islemleri","status":"publish","type":"post","link":"https:\/\/www.yazilimmutfagi.com\/index.php\/2015\/02\/16\/java-ile-mysql-veritabani-islemleri\/","title":{"rendered":"Java ile MySQL veritabani islemleri"},"content":{"rendered":"<p>Java ile veritabani islemleri yapabilmek i&ccedil;in veritabani ile java baglantilarini yapmak gerekir. Daha sonra ihtiyaca g&ouml;re ekleme silme ve g&uuml;ncelleme islemlerinen herhangi birisi yapilabilir. Insert, delete, update ve select islemlerini yapmayi bu dersin sonunda &ouml;grenmis olacagiz.<\/p>\n\n<p>Yazdigimiz sql kodlarina g&ouml;re yapmak istedigimiz islemleri yapabiliriz. Bu makalemde java ve maysql baglantisini kurmayi ve gerekli diger islemleri yapmayi anlatacagim.<\/p>\n\n<p><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazilimmutfagi.com\/Uploads\/java-mysql-1.png\" \/><\/p>\n\n<p>Ilk olarak projemize k&uuml;t&uuml;phane eklememiz gerekiyor. K&uuml;t&uuml;phane ekle diyoruz,&nbsp;daha sonra MySQL JDBC s&uuml;r&uuml;c&uuml;s&uuml;n&uuml; Se&ccedil;ip K&uuml;t&uuml;phane ekle butonuna tiklayip k&uuml;t&uuml;phanemizi ekliyoruz.<br \/>\nKullanacagimiz veritabani mysql oldugundan se&ccedil;ecegimiz k&uuml;t&uuml;phaneyi buna g&ouml;re belirliyoruz.<\/p>\n\n<p><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazilimmutfagi.com\/Uploads\/java-mysql-2.png\" \/><\/p>\n\n<pre class=\"brush:java;toolbar:false;ruler:true;\">\npublic class DataBase {\n    private Connection con;\n    private final String URL;\n    private final String KULID;\n    private final String SIFRE;\n\n    public DataBase(){\n        this.URL = &quot;jdbc:mysql:\/\/localhost:3306\/bilgi&quot;;\n        this.KULID = &quot;root&quot;;\n        this.SIFRE = &quot;&quot;;\n    }\n<\/pre>\n\n<p>&nbsp;<\/p>\n\n<p>DataBase classimizi olusturduk ve degiskenlerimizi tanimladik! Bos yapilandiricida url degiskenine sql adresimizi kulid ye sql serverdeki kullanici adimizi sifreye de eger sifre koymussak onu yaziyoruz.&nbsp;<\/p>\n\n<pre class=\"brush:java;toolbar:false;\">\n  private void baglan() throws SQLException, ClassNotFoundException{\n        if(con !=  null)\n            if( !con.isClosed())\n                return;\n\n        Class.forName(&quot;com.mysql.jdbc.Driver&quot;);\n        con = (Connection) DriverManager.getConnection(URL, KULID, SIFRE);\n    }<\/pre>\n\n<p>Baglan() metodumuzda ilk once baglantiyi kontrol ediyoruz.Eger daha &ouml;nce baglanti olusturulmussa return ile metoddan &ccedil;ikariyoruz.Eger baglanti yok ise yeni bir baglanti kuruyoruz!&nbsp;<br \/>\n&nbsp;Class.forName(); &nbsp;dinamik olarak y&uuml;klenecek sinifin belirliyoruz.Yani &nbsp;com paketinin i&ccedil;indeki mysql paketinin i&ccedil;indeki jdbc paketinin i&ccedil;indeki Driver classini &ccedil;alisma zamaninda &ccedil;alistiriyoruz.&nbsp;<br \/>\ncon = (Connection ) &hellip;&hellip;&hellip;&hellip;&hellip; satirinda ise baglantimizi kuruyoruz.<\/p>\n\n<pre class=\"brush:java;toolbar:false;\">\n   private void kapat(PreparedStatement prepared, ResultSet result) throws SQLException {\n        if(prepared != null)\n            prepared.close();\n        if(result != null)\n            prepared.close();\n        if(con != null)\n            con.close();\n    }\n<\/pre>\n\n<p>Kapat fonksiyonumuz iki parametre aliyor.Bu parametreler Daha sonra anlatacagim. Eger burada ki parametrelerimiz null degilse kapatilabilir ve kapatiyoruz!<\/p>\n\n<pre class=\"brush:java;toolbar:false;\">\npublic boolean ogrenciEkle(String ad, String soyad, String no) throws SQLException, ClassNotFoundException{\n        baglan();\n\n        String sql = &quot;INSERT INTO ogrencibilgiler VALUES (?, ?, ?)&quot;;\n\n        PreparedStatement prepared = (PreparedStatement) con.prepareStatement(sql);\n\n        prepared.setString(1, ad);\n        prepared.setString(2, soyad);\n        prepared.setString(3,no);\n\n        int sonuc = prepared.executeUpdate();\n\n        kapat(prepared, null);\n\n        return (sonuc &gt; 0);\n       \n    }\n<\/pre>\n\n<p>Bu metod &nbsp;ogrenci eklenip eklenmeme durumuna gore geriye true ya da false degeri dondermektedir!<br \/>\nOgrenci bilgileri nesnesi parametre olarak bilgiler &nbsp;getirilmektedir!<br \/>\nBaglan komutu ile veri tabanina baglaniyoruz!<\/p>\n\n<p>Insert veri tabanina bilgi eklemeye yarayan sql komutudur. Biz ogrenci bilgileri tablosuna ekleyecegiz bilgilerimizi<\/p>\n\n<p>PreparedStatement nesnesi bize sql kodumuzdaki soru isareti yerine ger&ccedil;ek degerleri atamamizi saglar.set metodlari ile ekeleyecegimiz nesneleri belirliyoruz (setString(), setInt() &hellip; gibi). executeUpdate() metodu ise bize islem yapilan &nbsp;satir sayisini g&ouml;nderir.Eger verimiz eklenmisse bize 1 degeri d&ouml;ner eger herhangi bir islem yapilmamis ise 0..<\/p>\n\n<p>Return (sonuc &gt; 0) sarti dogru ise yani herhangi bir satir atlanmissa true degeri donderir.Diger durumda false..<\/p>\n\n<pre class=\"brush:java;toolbar:false;\">\npublic void ogrenciListele() throws SQLException, ClassNotFoundException{\n        baglan();\n\n        String sql = &quot;SELECT * FROM ogrencibilgiler&quot;;\n\n        PreparedStatement prepared = (PreparedStatement) con.prepareStatement(sql);\n\n        ResultSet result = prepared.executeQuery();\n\n        while(result.next()){\n           System.out.println(result.getString(&quot;AD&quot;));\n           System.out.println(result.getString(&quot;SOYAD&quot;));\n           System.out.println(result.getString(&quot;NO&quot;));\n        }\n\n        kapat(prepared, result);\n\n    }\n<\/pre>\n\n<p>&nbsp;<\/p>\n\n<p>Burada farkli yerleri anlatacagim sadece.SELECT listeleme i&ccedil;in kullanilan bir sql kodudur . * ise ogrencibilgiler tablosundaki butun kolonlari temsil etmektedir eger istedigimiz bilgileri &ccedil;ekeceksek * yerine &ouml;rn; (SELECT ogrenciadi, ogrencisoyadi FROM ogrencibilgiler) diyebililriz.<\/p>\n\n<p>Resultset ise elde edilen sonuclarin uzerinde dolasmayi saglar. Next() metodu satirlarda ilerliyoruz.get metodlari ile kolonlardaki bilgileri &ccedil;ekiyoruz.<br \/>\nDaha sonra geriye listemizi g&ouml;nderiyoruz!<\/p>\n\n<pre class=\"brush:java;toolbar:false;\">\npublic boolean  guncelle() throws SQLException, ClassNotFoundException{\n        baglan();\n\n        String Sql = &quot;UPDATE ogrencibilgiler SET AD = ?, SOYAD = ? WHERE NO = ?&quot;;\n\n        PreparedStatement prepared = (PreparedStatement) con.prepareStatement(Sql);\n\n        prepared.setString(1, &quot;ahmet&quot;);\n        prepared.setString(2, &quot;mehmet&quot;);\n        prepared.setInt(3, 31);\n\n        int sonuc = prepared.executeUpdate();\n\n        kapat(prepared, null);\n\n        return(sonuc &gt; 0);\n    }\n<\/pre>\n\n<p>Yine guncelleyip guncellememe durumuna g&ouml;re geriye true yada false degerler d&ouml;nderiyoruz. UPDATE sql de guncellemek i&ccedil;in kullanilir &lsquo;ogrenci bilgiler&rsquo; tablo adimiz ve ogrenci ad ve ogrencisoyad guncelleyecegimiz kolonlara karsisil geliyor.&rsquo;where &rsquo; anahtar s&ouml;zc&uuml;g&uuml; sql de arama islemi yapan bir syntaxtir. Biz ogrenci no kolonunda arama yapacagimiz i&ccedil;in where anahtar kelimesinden sonra belirttik.<\/p>\n\n<p>Prepared yine Stringteki soru isaretlerine ger&ccedil;ek degerleri koydu.ve sonuc degiskeninde satir &nbsp;atlatildigini tutuyoruz eger satir atlanmis yani guncelleme yapilmis ise geriye true aksi durumda false donderiyoruz.<\/p>\n\n<pre class=\"brush:java;toolbar:false;\">\npublic boolean sil(String no) throws SQLException, ClassNotFoundException{\n        baglan();\n\n        String sql = &quot;DELETE FROM ogrencibilgiler WHERE NO = ?&quot;;\n        PreparedStatement prepared = (PreparedStatement) con.prepareStatement(sql);\n        prepared.setString(1, no);\n        int sonuc = prepared.executeUpdate();\n        kapat(prepared, null);\n        return (sonuc &gt; 0);\n    }\n<\/pre>\n\n<p>Delete sql de silmeyi saglar .Biz ogrenci no suna g&ouml;re silecegimiz i&ccedil;in onu da belirtiyoruz. Yine prepared ile soru isaretinin yerine degeri koyduk.Eger silinme islemi yapildiysa sonuc olarak 1 d&ouml;n&uuml;yor ve geriye true degeri d&ouml;nderiyoruz&hellip;<\/p>\n\n<p>Abdullah B&uuml;y&uuml;ktanir.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java ile veritabani islemleri yapabilmek i&#231;in veritabani ile java baglantilarini yapmak gerekir. Daha sonra ihtiyaca g&#246;re ekleme silme ve g&#252;ncelleme islemlerinen herhangi birisi yapilabilir. Insert, delete, update ve select islemlerini yapmayi bu dersin sonunda &#246;grenmis olacagiz.<\/p>\n","protected":false},"author":521,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[419],"tags":[4779,4031,3970,4749],"_links":{"self":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts\/412"}],"collection":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/users\/521"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/comments?post=412"}],"version-history":[{"count":0,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts\/412\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/media?parent=412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/categories?post=412"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/tags?post=412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}