Java ile Sqlite bağlantısı
Merhaba arkadaşlar bu yazının içeriğinde java ile oluşturduğunuz projenize sqlite veri tabanına bağlantı kurmayı inceleyeceğiz.
Öncelikle veri tabanına bağlanabilmemiz için oluşturduğumuz java projemize şu dosyayı import edelim
Buradan en son sürümü indirebilirsiniz.
En son sürümü indirdikten sonra şu adımları uygulayın(Netbeans 8.2 için anlatılmıştır)
Project kısmından sql ekleyecek olduğunuz projenize sağ tıklayın
Daha sonra "Properties" seçeneğini tıklayın.
Sol taraftan "Libraries" seçin.
Son olarak da sağ taraftan "Add JAR/Folder" seçeneğini tıklayıp indirdiğiniz dosyayı seçin.
Bağlantı oluşturma Connection
Bu dosyayı projenize ekledikten sonra projenizin içinde bağlantı adında bir class oluşturun.
bu class kodları şu şekildedir.
Burada "c" diye bir bağlantı değişkeni oluşturduk ve içine null değerini koyduk.
Daha sonra try-catch komutunu kullandık bunu kullanmamızın sebebi eğer kodlar hataya sebep verirse programı sonlandırmasın diyedir.
try komutunun içinde c değerine bizim oluşturduğumuz test.db adlı veri tabanımızın yolunu yazdık burada dikkat edilmesi gereken husus jdbc:sqlite:bukısım bu kısım yazan yerde bizim veri tabanımızın bulunduğu konumu yazmamız gerekiyor örneğin bizim veri tabanımız D diskinde Veritabanlari adli klasörün içinde olsun o zaman bizim yolumu jdbc:sqlite:d:/Veritabanlari olacaktır
Görsel olarak görmek isterseniz :
!EKLENECEK!
İçerik Ekleme İNSERT komutu kullanımı
İnsert komutunu bilmeyen arkadaşlar için kısaca bahsedelim.
insert into tablo adı (sütunadi1,sütunadi2)values(kayitDegeri1,kayitDegeri2)
yukarıda yazılmış olan kısa satır insert komutundan bir parçadır burada sütunadı1 yazan kısımlara bizim tablomuzdaki sütunun adını yazıyoruz, valuesden sonraki kısma ise tablonun o sütununun altına kayıt edilecek değeri yazıyoruz. Şimdi gelelim konumuza.
Her Seferinde tekrardan bağlantı komutunu yazmamak için bize veri tabanı bağlantı değeri döndürecek bir fonksiyon yazdık bu fonksiyonu inceleyelim.
url kısmında D diskimizde veritabani klasörü altındaki test.db dosyasının bulunduğu konum yazıyor.
Daha sonra boş bir bağlantı değişkeni tanımlıyoruz "Connection con=null";
Son olarak da try-catch kullanarak bağlantımızı sağlıyoruz.
con değişkenine DriverManager.getConnection(url); kullanarak bir bağlantı sağlıyoruz.
Eğer oluşursa catch komutu ile hatayı yakalıyoruz.
return komutu ile bağlantımızı döndürüyoruz.
şimdi de gelelim ekleme kısmına.
public static void kullaniciEkle(String isim,String sifre){
String ekle="insert into kullanicilar(isim,sifre)values(?,?)";
try(Connection conn=connect();
PreparedStatement pstmt=conn.prepareStatement(ekle);
){
pstmt.setString(1, isim);
pstmt.setString(2, sifre);
pstmt.executeUpdate();
}catch(Exception ex){
System.out.println("Veri tabanına ekleme başarısız! Hata :"+ex);
}
}
Ben burada sadece isim ve şifre ekleyeceğimden dolayı sadece isim ve şifre alan bir fonksiyon oluşturdum.
Bu fonksiyonun içinde ekle adında bir string oluşturdum ve bu stringin içine sql komutumu yazdım
daha sonra try-catch komutunu kullanarak conn isimli bir bağlantı değişkeni oluşturuyorum ve yazmış olduğum connect() fonksiyonunu burada çağırıyorum.
Böylelikle conn değişkenimin içine bir bağlantı sağlıyorum.
PreparedStatement komutu ile oluşturduğum conn değişkenine yazmış olduğum komutu göndermeden önce hazırlamak için bir pstmt değişkeni oluşturuyorum.
Böylelikle soru işaretleri ile belirttiğim yerlere kullanıcının girdiği değerleri yazabileceğim.
pstmt.setString(1,isim); komutu ile 1. soru işareti yerine isim değişkeninin içeriğini yaz diyorum aynı şeyi şifre için de sağlıyorum böylelikle benim yazdırmak istediğim komut hazırlanıyor.
Son olarak da pstmt.exequteUpdate(); komutu ile hazırlamış olduğum komutu veritabanına yolluyorum.
Örnek videoyu izlemek isteyenler :
[wonderplugin_video videotype="mp4" mp4="https://drive.google.com/uc?export=download&id=1lhNGY8IUHXDpavwEQgTU4vXhI3_aPZtI" videowidth=600 videoheight=400 keepaspectratio=1 videocss="position:relative;display:block;background-color:#000;overflow:hidden;max-width:100%;margin:0 auto;" playbutton="http://www.erdincyasan.org/wp-content/plugins/wonderplugin-video-embed/engine/playvideo-64-64-0.png"]
Select komutu ile verileri çekme ve görüntüleme
öncelikle kodları vereyim
goruntule() fonksiyonunu oluşturdum ve içinde bir tane gor adlı string var bu stringin içine hangi tablodan veri çekeceğimi yazdım
daha sonra Connection ile yeni bir conn bağlantısı oluşturdum
conn değerinin içine bir statement oluşturdum.
bu statement bir değer döndüreceği için ResultSet (rs) oluşturdum.
rs komutuna da rs=stmt.executeQuery(gor); fonksiyonunu çalıştırarak sorgumu veritabanına yolladım ve gelen değeri ResultSetimin içine kaydettim.
while komutu ile rs değişkenim 0 olana kadar döngümü kurdum.
daha sonra da System.out ile değerlerimi ekrana yazdırdım.
Video için :[wonderplugin_video videotype="mp4" mp4="https://drive.google.com/uc?export=download&id=1fTkNcoXTGmgtH_L7KLzzayB8rGKmtx-y" videowidth=600 videoheight=400 keepaspectratio=1 videocss="position:relative;display:block;background-color:#000;overflow:hidden;max-width:100%;margin:0 auto;" playbutton="http://www.erdincyasan.org/wp-content/plugins/wonderplugin-video-embed/engine/playvideo-64-64-0.png"]
Update ile veri güncelleme
Öncelikle kodları vereyim :
Öncelikle guncelle() fonksiyonunu oluşturduk bu fonksiyon içine 3 parametre alır bunlar id , isim , sifre dir. ID almamızın sebebi hangi kullanıcının bilgilerini güncelleyeceğimizdendir.
Öncelikle sql stringimizi oluşturduk "update kullanicilar set isim=?,sifre=? where id=?"
daha sonra try-catch komutu ile Connection (bağlantı oluşturduk :conn)
oluşturduğumuz conn: değerine birtane değiştirebileceğimiz PreparedStatement (pstmt) oluşturduk.
oluşturduğumuz pstmt değerini pstmt.setString(1,isim); gibi değerlerle güncelledik.
ve son olarak pstmt sorgumuzu sqle yolladık.
Video :[wonderplugin_video videotype="mp4" mp4="https://drive.google.com/uc?export=download&id=1Vh_bsrhKNGAy3GvNK2vN0eiPzLxXy3wQ" videowidth=600 videoheight=400 keepaspectratio=1 videocss="position:relative;display:block;background-color:#000;overflow:hidden;max-width:100%;margin:0 auto;" playbutton="http://www.erdincyasan.org/wp-content/plugins/wonderplugin-video-embed/engine/playvideo-64-64-0.png"]
Delete Komutu ile Silme
Öncelikle kodumuzu görelim
veriSil adlı fonksiyonumuzu oluşturduk içinde hangi veriyi silmemizi belirtmemiz için alacak olduğumuz parametre olan int id değeri bulunmakta.
String sil değişkenimizi oluşturarak sql sorgumuzu yazabiliyoruz .
try-catch komutu ile bağlantı oluşturuyoruz ardından bağlantımıza sql komutunu düzenleyip yollayabileceğimiz bir prepare statement (pstmt) değişkeni oluşturuyoruz
daha sonra et int komutu ile düzenleyerek execute Update ediyoruz ve sorgumuzu veri tabanına yolluyoruz.
Video :[wonderplugin_video videotype="mp4" mp4="https://drive.google.com/uc?export=download&id=1cwv3r5aDc6JZhW9hAZYa-BMXnvSUlqXN" videowidth=600 videoheight=400 keepaspectratio=1 videocss="position:relative;display:block;background-color:#000;overflow:hidden;max-width:100%;margin:0 auto;" playbutton="http://www.erdincyasan.org/wp-content/plugins/wonderplugin-video-embed/engine/playvideo-64-64-0.png"]
Öncelikle veri tabanına bağlanabilmemiz için oluşturduğumuz java projemize şu dosyayı import edelim
Buradan en son sürümü indirebilirsiniz.
En son sürümü indirdikten sonra şu adımları uygulayın(Netbeans 8.2 için anlatılmıştır)
Project kısmından sql ekleyecek olduğunuz projenize sağ tıklayın
Daha sonra "Properties" seçeneğini tıklayın.
Sol taraftan "Libraries" seçin.
Son olarak da sağ taraftan "Add JAR/Folder" seçeneğini tıklayıp indirdiğiniz dosyayı seçin.
Bağlantı oluşturma Connection
Bu dosyayı projenize ekledikten sonra projenizin içinde bağlantı adında bir class oluşturun.
bu class kodları şu şekildedir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import java.sql.*; public class baglanti { public static void main( String args[] ) { Connection c = null; try { c = DriverManager.getConnection("jdbc:sqlite:test.db"); } catch ( Exception e ) { System.err.println( "Veri tabanı bağlantısı başarısız!" ); System.exit(0); } System.out.println("Veri tabanına başarılı bir şekilde bağlanıldı."); } } |
Burada "c" diye bir bağlantı değişkeni oluşturduk ve içine null değerini koyduk.
Daha sonra try-catch komutunu kullandık bunu kullanmamızın sebebi eğer kodlar hataya sebep verirse programı sonlandırmasın diyedir.
try komutunun içinde c değerine bizim oluşturduğumuz test.db adlı veri tabanımızın yolunu yazdık burada dikkat edilmesi gereken husus jdbc:sqlite:bukısım bu kısım yazan yerde bizim veri tabanımızın bulunduğu konumu yazmamız gerekiyor örneğin bizim veri tabanımız D diskinde Veritabanlari adli klasörün içinde olsun o zaman bizim yolumu jdbc:sqlite:d:/Veritabanlari olacaktır
Görsel olarak görmek isterseniz :
!EKLENECEK!
İçerik Ekleme İNSERT komutu kullanımı
İnsert komutunu bilmeyen arkadaşlar için kısaca bahsedelim.
insert into tablo adı (sütunadi1,sütunadi2)values(kayitDegeri1,kayitDegeri2)
yukarıda yazılmış olan kısa satır insert komutundan bir parçadır burada sütunadı1 yazan kısımlara bizim tablomuzdaki sütunun adını yazıyoruz, valuesden sonraki kısma ise tablonun o sütununun altına kayıt edilecek değeri yazıyoruz. Şimdi gelelim konumuza.
Her Seferinde tekrardan bağlantı komutunu yazmamak için bize veri tabanı bağlantı değeri döndürecek bir fonksiyon yazdık bu fonksiyonu inceleyelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public static Connection connect(){ String url="jdbc:sqlite:d:/veritabani/test.db"; Connection con=null; try { con=DriverManager.getConnection(url); } catch (Exception e) { System.out.println("Veri tabanı bağlantısı başarısız hata:"+e); } return con; } |
url kısmında D diskimizde veritabani klasörü altındaki test.db dosyasının bulunduğu konum yazıyor.
Daha sonra boş bir bağlantı değişkeni tanımlıyoruz "Connection con=null";
Son olarak da try-catch kullanarak bağlantımızı sağlıyoruz.
con değişkenine DriverManager.getConnection(url); kullanarak bir bağlantı sağlıyoruz.
Eğer oluşursa catch komutu ile hatayı yakalıyoruz.
return komutu ile bağlantımızı döndürüyoruz.
şimdi de gelelim ekleme kısmına.
public static void kullaniciEkle(String isim,String sifre){
String ekle="insert into kullanicilar(isim,sifre)values(?,?)";
try(Connection conn=connect();
PreparedStatement pstmt=conn.prepareStatement(ekle);
){
pstmt.setString(1, isim);
pstmt.setString(2, sifre);
pstmt.executeUpdate();
}catch(Exception ex){
System.out.println("Veri tabanına ekleme başarısız! Hata :"+ex);
}
}
Ben burada sadece isim ve şifre ekleyeceğimden dolayı sadece isim ve şifre alan bir fonksiyon oluşturdum.
Bu fonksiyonun içinde ekle adında bir string oluşturdum ve bu stringin içine sql komutumu yazdım
daha sonra try-catch komutunu kullanarak conn isimli bir bağlantı değişkeni oluşturuyorum ve yazmış olduğum connect() fonksiyonunu burada çağırıyorum.
Böylelikle conn değişkenimin içine bir bağlantı sağlıyorum.
PreparedStatement komutu ile oluşturduğum conn değişkenine yazmış olduğum komutu göndermeden önce hazırlamak için bir pstmt değişkeni oluşturuyorum.
Böylelikle soru işaretleri ile belirttiğim yerlere kullanıcının girdiği değerleri yazabileceğim.
pstmt.setString(1,isim); komutu ile 1. soru işareti yerine isim değişkeninin içeriğini yaz diyorum aynı şeyi şifre için de sağlıyorum böylelikle benim yazdırmak istediğim komut hazırlanıyor.
Son olarak da pstmt.exequteUpdate(); komutu ile hazırlamış olduğum komutu veritabanına yolluyorum.
Örnek videoyu izlemek isteyenler :
[wonderplugin_video videotype="mp4" mp4="https://drive.google.com/uc?export=download&id=1lhNGY8IUHXDpavwEQgTU4vXhI3_aPZtI" videowidth=600 videoheight=400 keepaspectratio=1 videocss="position:relative;display:block;background-color:#000;overflow:hidden;max-width:100%;margin:0 auto;" playbutton="http://www.erdincyasan.org/wp-content/plugins/wonderplugin-video-embed/engine/playvideo-64-64-0.png"]
Select komutu ile verileri çekme ve görüntüleme
öncelikle kodları vereyim
1 2 3 4 5 6 7 8 9 10 11 12 13 | public static void goruntule(){ String gor="select * from kullanicilar"; try(Connection conn=connect(); Statement st=conn.createStatement(); ResultSet rs=st.executeQuery(gor);){ while(rs.next()){ System.out.println("id:"+rs.getInt("id")+"\tİsim:"+rs.getString("isim")+"\tSifre:"+rs.getString("sifre")); } }catch(Exception ex){ System.err.println("Veri çekme başarısız!"); } } |
goruntule() fonksiyonunu oluşturdum ve içinde bir tane gor adlı string var bu stringin içine hangi tablodan veri çekeceğimi yazdım
daha sonra Connection ile yeni bir conn bağlantısı oluşturdum
conn değerinin içine bir statement oluşturdum.
bu statement bir değer döndüreceği için ResultSet (rs) oluşturdum.
rs komutuna da rs=stmt.executeQuery(gor); fonksiyonunu çalıştırarak sorgumu veritabanına yolladım ve gelen değeri ResultSetimin içine kaydettim.
while komutu ile rs değişkenim 0 olana kadar döngümü kurdum.
daha sonra da System.out ile değerlerimi ekrana yazdırdım.
Video için :[wonderplugin_video videotype="mp4" mp4="https://drive.google.com/uc?export=download&id=1fTkNcoXTGmgtH_L7KLzzayB8rGKmtx-y" videowidth=600 videoheight=400 keepaspectratio=1 videocss="position:relative;display:block;background-color:#000;overflow:hidden;max-width:100%;margin:0 auto;" playbutton="http://www.erdincyasan.org/wp-content/plugins/wonderplugin-video-embed/engine/playvideo-64-64-0.png"]
Update ile veri güncelleme
Öncelikle kodları vereyim :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public static void guncelle(int id, String isim,String sifre){ String degistir="update kullanicilar set isim=?,sifre=? where id=?"; try(Connection conn=connect(); PreparedStatement pstmt=conn.prepareStatement(degistir); ){ pstmt.setString(1, isim); pstmt.setString(2, sifre); pstmt.setInt(3, id); pstmt.executeUpdate(); }catch(Exception ex){ System.out.println("Veri tabanı güncellemesi başarısız! HATA:"+ex); } } |
Öncelikle guncelle() fonksiyonunu oluşturduk bu fonksiyon içine 3 parametre alır bunlar id , isim , sifre dir. ID almamızın sebebi hangi kullanıcının bilgilerini güncelleyeceğimizdendir.
Öncelikle sql stringimizi oluşturduk "update kullanicilar set isim=?,sifre=? where id=?"
daha sonra try-catch komutu ile Connection (bağlantı oluşturduk :conn)
oluşturduğumuz conn: değerine birtane değiştirebileceğimiz PreparedStatement (pstmt) oluşturduk.
oluşturduğumuz pstmt değerini pstmt.setString(1,isim); gibi değerlerle güncelledik.
ve son olarak pstmt sorgumuzu sqle yolladık.
Video :[wonderplugin_video videotype="mp4" mp4="https://drive.google.com/uc?export=download&id=1Vh_bsrhKNGAy3GvNK2vN0eiPzLxXy3wQ" videowidth=600 videoheight=400 keepaspectratio=1 videocss="position:relative;display:block;background-color:#000;overflow:hidden;max-width:100%;margin:0 auto;" playbutton="http://www.erdincyasan.org/wp-content/plugins/wonderplugin-video-embed/engine/playvideo-64-64-0.png"]
Delete Komutu ile Silme
Öncelikle kodumuzu görelim
1 2 3 4 5 6 7 8 9 10 11 | public static void veriSil(int id){ String sil="delete from kullanicilar where id=?"; try(Connection conn=connect(); PreparedStatement pstmt=conn.prepareStatement(sil);){ pstmt.setInt(1, id); pstmt.executeUpdate(); }catch(Exception ex){ System.err.println("Veri tabanı silme işlemi başarısız! Hata:"+ex); } } |
veriSil adlı fonksiyonumuzu oluşturduk içinde hangi veriyi silmemizi belirtmemiz için alacak olduğumuz parametre olan int id değeri bulunmakta.
String sil değişkenimizi oluşturarak sql sorgumuzu yazabiliyoruz .
try-catch komutu ile bağlantı oluşturuyoruz ardından bağlantımıza sql komutunu düzenleyip yollayabileceğimiz bir prepare statement (pstmt) değişkeni oluşturuyoruz
daha sonra et int komutu ile düzenleyerek execute Update ediyoruz ve sorgumuzu veri tabanına yolluyoruz.
Video :[wonderplugin_video videotype="mp4" mp4="https://drive.google.com/uc?export=download&id=1cwv3r5aDc6JZhW9hAZYa-BMXnvSUlqXN" videowidth=600 videoheight=400 keepaspectratio=1 videocss="position:relative;display:block;background-color:#000;overflow:hidden;max-width:100%;margin:0 auto;" playbutton="http://www.erdincyasan.org/wp-content/plugins/wonderplugin-video-embed/engine/playvideo-64-64-0.png"]
Yorumlar
Yorum Gönder