Apache Derby ile Java'da Tablo ve Veritabanı Oluşturma

eclipseturkiye

Yeni üye
15 Tem 2012
6
0
Merhaba arkadaşlar, bugünkü dersimiz de Derby Gömülü Veritabanın’da Veri tabanı ve tablo oluşturmaktan bahsedeceğim.
Derby Gömülü Veri tabanı sunucu özelliği taşımaz ve tek kullanıcılıdır. Yani Derby ile oluşturulmuş bir veri tabanını sadece bir program kullanır. Derby de ufak değişiklikler olsa da genel itibariyla tablo oluşturma diğer VTYS’lerle aynıdır ve aynı mantıkta çalışır. Şimdi kısaca basit bir veri tabanı ve tablo oluşturmaktan bahsedeceğim.
Veri Tabanımızın adı : EclipseTurkiye olusun. Tablomuzun ismi ise sanalKursKategori olsun ve sanalKursKategori tablosun da id, katAdi sütunları olsun.
Derby’de veri tabanı oluşturma kodu aşağıda ki gibidir.
Kod:
“jdbc:derby:c:/EclipseTurkiye;create=true”;
bunun anlamı şudur.
jdbc derby ile c: sürücüsünde EclipseTurkiye adında bir veri tabanı yoksa oluştur. Create=true yoksa oluştur anlamında kullanılmıştır. Burada veri tabanı oluştururken c:/EclipseTurkiye adında c: / sürücüsüne yeni bir veri tabanı klasorü oluşturmaktadır, bu işi otomatik olarak da yaptırabiliriz bu için java’da “separatorChar” adında bir sınıf kullanılır. Kullanımı aşağıdaki gibidir Windows’ta ve linux’ta direkt kullanıcı dosyalarına(xp’de belgelerim) veri tabanı klasörünü oluşturur;
Kod:
static {
  String ev, sistem;
  ev = System.getProperty("user.home", ".");
  sistem = ev + File.separatorChar + ".EclipseTurkiye";
  System.setProperty("derby.system.home", sistem);

  try {
   Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

 }

User.home kullanıcı dizini demektir, yani hangi işletim sistemi kullanıyorsanız oranın kullanıcı dosyalarının içine otomatik olarak .EclipseTurkiye adında bir klasör oluşturuyor. Bunu oluşturmadan önce aşağıdaki adımları izler ve bazı tespitler yapar.
Kod:
ev = System.getProperty("user.home", ".");
Kod:
System.setProperty("derby.system.home", sistem);  //burada kullanıcının işletim sistemi tespit ediliyor.
Yani; Sistem ve ev değişkeninden klasör oluşturacağı kullanıcı (User) dizinini buluyor ve EclipseTurkiye adında bir klasör oluşturuyor tıpkı aşağıda ki gibi.
Kod:
sistem = ev + File.separatorChar + ".EclipseTurkiye";
sistem = ev birbiri ile ilişkilendirilip File.separatorChar ile ”EclipseTurkiye” klasörü oluşturuluyor.
Kısaca otomatik veri tabanı yolu oluşturma böyle gerçekleşiyor.
Gelelim Tablo oluşturmaya:
Derby de diğer SQL kullanan VTYS’lere göre ufak değişiklikler var şimdi aşağıda göreceksiniz bu değişiklikleri.
Kod:
CREATE TABLE sanalKursKategori (id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), katAdi VARCHAR(50))
Kod:
CREATE TABLE sanalKursKategori
Burada demek istenen şudur; SanalKursKategori adında bir tablo oluştur.
Kod:
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)
Burada ise id adında tam sayı olarak üretilen kimlik birincil anahtardır ve her zaman bir den başlar ve birer birer artar anlamına gelmektedir.
Kod:
katAdi VARCHAR(50)
ise katAdi adında ki sutun kısıtlı metindir ve 50 karakterden fazla kullanıcı giriş yapamaz. Karakterden fazla derken sadece karakter türünde ki sayı harf ve özel karakter anlamına gelmektedir. Integer türünde ki bir java karakterini buraya kayıt yaptıramazsınız.
Anlaşılan o ki Derby’de diğer SQL kullanan VTYS’ler gibi aynı özellikleri taşımaktadır fakat yazım farklılıkları göstermektedir.
Bugün ki dersimiz bu kadar arkadaşlar umarım sizlerin işine yarayacak konulara değinmişimdir iyi dersler diliyorum.

Not: Bu makale Emrah DEDEOĞLU tarafından yazılmıştır.
Kaynak
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.