Java ve SQLite: Örnek Veritabanı Uygulaması – 4 | Java ve SQLite: Örnek Veritabanı Uygulaması – 4 – Harun Reşit Zafer
Harun Reşit Zafer
bâki kalan bu kubbede bir hoş sadâ imiş
Hakkında
Projeler
İletişim
Hakkında
Projeler
İletişim
Java ve SQLite: Örnek Veritabanı Uygulaması – 4
17 Eylül 2012 / Harun Reşit Zafer / 15 yorum
Bundan önceki üç makale MySql veritabanı kullanan küçük masaüstü uygulamalarıydı. Ancak MySql aslında masaüstü uygulamalarında kullanılmak için tasarlanmış bir veritabanı yönetim sistemi değil. Daha çok web ve dağıtık uygulamalar için kullanılan bir çözüm. Bu nedenle veritabanı bir sunucu üzerinden hizmet veriyor ve veritabanını kullanacak olan tüm uygulamalar veriye bu sunucu üzerinden ulaşıyor. Bir masaüstü uygulamasının ihtiyaç duyacağı yerel bilgileri MySql veritabanı kullanarak sakladığımızda, o uygulamayı kuracağımız her bilgisayara bir de mysql sunucu kurmamız, hatta veritabanını da sunucuda yeniden oluşturmamız gerekiyor. Sözün kısası uzun zamandır bu problemle ilgili sorular geliyordu ve çözüm olarak Sqlite’i öneriyordum. Bu yazıda bu önerimi örnek bir uygulama ile pekiştireceğim. Bu arada Sqlite veritabanını kullanan uygulama ve işletim sistemlerinden bazılarının Firefox, Opera, Chrome, Skype, Dropbox, Windows Phone 8, Apple iOS, Symbian Os, Google Android vs. olduğunu hatırlatalım.
Bu yazıda ayrıntılı bir anlatım yapmak yerine kısaca önceki makalelerde yaptığımız çalışmayı SQLite’e uyarladım. Çünkü önceki makaleler yeterince ayrıntılı. Bu uyarlamayı Netbeans projesi olarak yazının sonundaki bağlantıdan indirebilirsiniz. Java ve veritabanı konusunda hiç tecrübeniz yoksa önce ilk üç makaleyi çalışmanızı tavsiye ederim.
1- SQLite veritabanı oluşturma
Öncelikle yapmamız gereken kullanacağımız veritabanını tasarlamak ve oluşturmak olacak. Bunun için de bize bir SQLite yönetici uygulaması gerekiyor. Bu uygulama bizlere yeni veritabanı oluşturma, tablo ekleme/silme/güncelleme gibi işlemleri rahatça yapabileceğimiz bir arayüz sunmalı. Mysql için PhpMyAdmin, MySQL manager gibi bir çok benzer uygulama mevcuttu hatırlarsanız. Google’da “sqlite manager” şeklinde bir arama yaptığınızda pek çok sonuç çıkıyor. Bunları tek tek incelemeye vaktim olmadı. Ancak ilk sırada gelen ve bir Firefox eklentisi olan Firefox Sqlite Manager‘ın son derece kullanışlı ve yeterli olduğunu söyleyebilirim. Tek dezavantajı Firefox ile birlikte kullanmanız gerektiği.
Yeni veritabanımızı oluşturalım. Bu veritabanı “kisiler” isminde tek bir tablo içerecek:
– Menüden Database->New database seçeneğini tıklayın.
– Açılan pencerede yeni veritabanının ismini girin, sonuna sqlite uzantısı otomatik olarak eklenecektir.
– Veritabanına tablo eklemek için, sol paneldeki “tables” üzerine sağ tıklayıp “create table” seçeneğine tıklayın. Açılan pencerede tablo alanlarını aşağıdaki gibi oluşturun.
– Alternatif olarak soldaki sekmelerden “Execute SQL” ismindekini seçip, tabloyu aşağıdaki SQL sorgusunu çalıştırarak oluşturabilirsiniz.
CREATE TABLE "kisiler" ("id" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , "ad" VARCHAR, "soyad" VARCHAR, "yas" INTEGER, "cinsiyet" BOOL)
– Oluşturulan tabloya kayıt girişi de aynı şekilde el ile veya SQL sorgusu çalıştırarak olabilir. El ile girişi “Browse & Search” isimli sekmeden “Add” butonuna tıklayarak yapabilirsiniz. Kayıtlar eklendikten sonra görünüm aşağıdakine benzer olacaktır.
– Kayıtları aşağıdaki sorguyu çalıştırarak da girebilirsiniz. Bunu yukarıda yaptığımız gibi “Execute SQL” sekmesinden yapabilirsiniz.
INSERT INTO "kisiler" VALUES(1,'Harun Reşit','Zafer',30,1);
INSERT INTO "kisiler" VALUES(2,'Derya','Deniz',24,0);
INSERT INTO "kisiler" VALUES(3,'Emir','Aydın',33,1);
INSERT INTO "kisiler" VALUES(4,'Levent','Denizeri',25,1);
INSERT INTO "kisiler" VALUES(5,'Abbas','Yolcu',25,1);
2- Java ile veritabanına bağlantı
Hatırlarsanız Java ile MySQL’e bağlanırken projemize “MySQL JDBC Driver” isimli kütüphaneyi eklememiz gerekiyordu. Aynı şekilde SQLite için de çeşitli JDBC sürücüleri mevcut. Ancak MySQL sürücüsü Netbeans ile birlikte hazır bir kütüphane olarak geliyor ve projeye eklenmesi daha kolay. SQLite için ise ilgili jar dosyasını indirip projemize eklememiz gerekecek. Aşağıdaki bağlantılardan sürücüyü, kaynak kodlarını ve döküman kodlarını indirebilirsiniz. Bunları projenize nasıl ekleyeceğinizi bilmiyorsanız şu makale yardımcı olacaktır.
1- sqlite-jdbc-3.7.2.jar
2- sqlite-jdbc-3.7.2-javadoc.jar
3- sqlite-jdbc-3.7.2-sources.jar
– Netbeans projenizin ana dizinine “db” ve “lib” isimli iki yeni klasör açmanızı ve jar dosyalarını “lib” klasörünün içerisine, “vt.sqlite” ya da benzer isimli veritabanı dosyanızı da “db” isimli klasörün altına kopyalamanızı öneririm.
– Veritabanına bağlantı parametreleri ise aşağıdaki gibi olacaktır.
private Connection conn = null; //Bağlantı nesnemiz
private String url = "jdbc:sqlite";//veritabanının adresi ve portu
private String dbName = ":db/vt.sqlite"; //veritabanının dosya yolu
private String driver = "org.sqlite.JDBC";//SQLite ile Java arasındaki bağlantıyı sağlayan JDBC sürücüsü
Projenin diğer kısımların önceki makalelerde açıkladığım için bir daha açıklama gereği duymuyorum. Zaten kaynak kodlarda gereken her şey mevcut. Bu dersin kaynak kodlarını Netbeans projesi olarak buradan indirebilirsiniz.
Herkese kolay gelsin
İlgili Makaleler
SQL 17: Örnek Okul Veritabanı
Netbeans, Java, MySQL: Örnek Veritabanı Uygulaması - 3
Netbeans, Java, MySQL: Örnek Veritabanı Uygulaması - 2
Netbeans, Java, MySQL: Örnek Veritabanı Uygulaması - 1
Programlama, veritabanı
javasqliteveritabanı
Önceki yazı
Türkçe İmla Denetimi Üzerine
Sonraki yazı
İngilizce Sözlük ve Kullanım Tavsiyesi
15 Yorum
hmz
04 Kasım 2012 at 13:24
makaleleriniz çok yararlı oldu teşekkürler yayınladığınız için. daha fazlasını bekliyoruz
Cevapla
Emre
14 Kasım 2012 at 09:34
Merhabalar,
Öncelikle çalışmanız çok yararlı ve başarılı olmuş teşekkür ederim.Fakat projenizi netbeans da açıp çalıştırdığımda tablo sütun isimlerinin gözükmediğini fark ettim sanırım veritabanı ile alakalı. Bu konuda yardımcı olursanız sevinirim..
Cevapla
admin (Post author)
14 Kasım 2012 at 11:08
Öncelikle sorunun veritabanı ile ilgili olmadığını belirteyim. Sorun Jtable ile ilgili. VAktim olduğunda kodu düzelteceğim, şimdilik sorunun cevabını şu bağlantıda bulabilirsiniz. http://stackoverflow.com/questions/4839037/column-header-name-in-jtable-java
Cevapla
Emre
14 Kasım 2012 at 12:01
Teşekkür ederim sorunu hallettim hocam.
Bu arada bir sorum daha olacaktı.Netbeans üzerinden connection wizard kullanarak veritabanına bağlanmaya çalıştım fakat dosya yolunu jdbc:sqlite:db\vt.sqlite yazdıgım halde geçersiz dosya yolu hatası verdi.daha farklı nasıl yazabilirim acaba?
Cevapla
hmz
24 Kasım 2012 at 17:44
order by ile isimleri sıraladığımızda türkçe karakter sorunumux var
Cevapla
hmz
01 Aralık 2012 at 08:46
Hocam yorum yaptım yukarda duruyor mail de attım size ancak olumlu ya da olumsuz bi geri dönüş yapmadınız, ORDER BY ile isimleri sıraladığımızda türkçe karakter ile başlayanları en sona atıyor bunun çözümünü biliyor musunuz?
Cevapla
admin (Post author)
18 Aralık 2012 at 04:01
Sorunuzu yeni gördüm. Karakter kümesini (Charset, Collation) utf8_turkish seçmeniz gerekiyor. Şöyle bir yazı var. Muhtemelen sorunuza cevap olur: http://www.huysuzadam.com/2009/05/23/mysql-turkce-destegi-collation-ve-character-set-nedir/
Cevapla
hmz
18 Aralık 2012 at 03:28
???
Cevapla
hmz
24 Aralık 2012 at 05:11
SQLite Manager da öyle bi özellik yok (araştırmama göre sqlite türkçe desteğiyle gelmiyor ve nasıl türkçe sıralamayı yapacak şekilde ayarlanır bulamadım, beceremedim), bende bulamamış olabilirim. Gerçekten çok uğreştım bununla ve hala bi çözüm bulamıyorum. Proje dosyalarınız elinizde sonuçta bi deneseniz ve makalenin sonuna türkçe sıralamayı nasıl yapabileceğimizi de ekleseniz gerçekten çok yararlı olacak. Şimdiden teşekkürler iyi çalışmalar
Cevapla
admin (Post author)
04 Ocak 2013 at 09:55
Biraz araştırdım bu konuyu ve gördüm ki bunun basit bir çözümü yok. En basit çözüm verileri veritabanından çektikten sonra sıralatmak. Örneğin her bir kaydı bir nesneye atıp bu nesnelerden bir liste oluşturulabilir. Daha sonra bu liste sıralanabilir.
Cevapla
hmz
05 Ocak 2013 at 19:49
Evet basit bir çözümü yok ve hiç kimse de oturup uğraşmamış galiba bu sorunla. Ya dediğiniz gibi veri tabanından çekip sıralamışlar (ki bende öyle yaptım) ya da sqlite kullanmaktan vazgeçmişler projelerinde. Benim SQLite’a Türkçe sıralama desteği verecek eklentiyi yazıp ekleyecek kadar bilgim ve tecrübem yok ama o kadar araştırma yapmama rağmen hiç kimsenin böyle bişeyi yapmadığını(ya da paylaşmadığını) gördüm. Bunu yapabilecek kadar tecrübe kazandığımda yazılımda, bu konuyla alakalı bir yazı yazmak isterdim :).
Bulduğum çözüm her ne kadar işimi görse de içime sinmiyor, benim SQLite’a o eklentiyi yazabilmem gerekirdi diye düşünüyorum hala, şimdilik ara veriyorum bu konuya ama illaki tekrar uğraşırım.
Cevaplarınız ve önerileriniz için teşekkürler, iyi çalışmalar.
Cevapla
ali
19 Aralık 2013 at 17:11
hocam video indirme linkini yenileye bilirmisiniz link kırık.
Cevapla
admin (Post author)
26 Aralık 2013 at 00:55
indirme linkini yeniledim
Cevapla
dilara
16 Şubat 2017 at 08:13
Merhaba Hocam,
Gerçekten çok faydalı bir makale olmuş. Öncelikle bunun için teşekkür ediyorum. Ancak kafama takılan bir şey var;
Mesela ben SQLite’ı kullanarak bir masa üstü uygulaması yaptım diyelim. Bu uygulamayı yüklediğim her bilgisayara Firefox Sqlite Manager’ıda indirip kurmam gerekiyor mu??
Cevapla
Harun Reşit Zafer (Post author)
30 Eylül 2017 at 11:36
Hayir gerekmiyor
Cevapla
hmz için bir cevap yazın Cevabı iptal et
E-posta adresiniz yayınlanmayacak
Author *
Email *
Website
Kategoriler
Doğal Dil İşleme
Geliştirme Ortamı
Genel
güvenlik
linux
Programlama
sql
Türkçe Üzerine
veritabanı
Etiketler
autorun c# database güvenlik intellisense java joker karakter linux mysql mysql char_length mysql duplicate mysql gui mysql length mysql limit mysql merge mysql string netbeans nlp nuve os pardus php prizma sql sql and sql distinct sql inner join sql join sql like sql or sql order by sql select sql top sql where sql wildcard swing text classification turkish parser türkçe parser unix usb veritabanı virüs weka xampp