Şimdi Ara

Kurucu metotları özelleştirmek

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
16
Cevap
0
Favori
842
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar merhaba;
    Bir sorum olucaktı.

    Bir sql kütüphanesi yazmaya çalışıyorum yapmak istediğim şey şu

    Sorgu sorgu = new Select("*").from("tablename").where("kullaniciadi").equals("rocket11");

    sorgu nesnesini oluşturduktan sonrada

    sorgu.çalıştır
    yada
    Sorgu sorgu = new InsertINTO("tablename").Colomns(string colomns[]).Values(string Values[]);
    sorgu.çalıştır

    şeklinde yapabilmem lazım standart sql çözümlerinden ziyade bunun sınıf yapısını nasıl oluşturmam gerektiği hakkında bilgilendirebilir misiniz?

    bu sınıfkurucu().metot1().metot2().metot3(); nasıl tanımlamam gerekiyor.
    teşekkürler ve iyi akşamlar.



  • her select, insert into vs vs metodunda instancein kendisini return etmen lazim. temel nokta kendisini dondurmesi.

    mesela java dilinde soyle basit bir ornek yazdim hemen, compile etmedim hata olabilir ama mantik bu iste.

    class Query { 

    private String queryString;

    public Query() {
    queryString = new String();
    }

    public Query select(String columnName) {
    queryString = "";
    queryString += "SELECT " + columnName;
    return this;
    }

    public Query from(String tableName) {
    queryString += " FROM " + tableName;
    return this;
    }

    public void execute() {
    System.out.println("Query Calistiriliyor: " + queryString);
    }

    }



    kurucu metod ile isin yok esasinda. zaten kurucu metod kendisini dondurur. hatta sunu bile yapabilirsin tekrar kullanmayacaksan, illa referansa bile gerek yok, calisir ve memory ihtiyacinda cop toplayici yok eder nesneyi:

    new Query().select("name, surname").from("user").execute();



    < Bu mesaj bu kişi tarafından değiştirildi Guest-E41040413 -- 9 Şubat 2013; 22:10:39 >




  • sınıfkurucu().metot1() bişey yapmasan da çalışır çünkü kurucu metod kendiliğinden referans döndürür. Buna devam etmek için diğer metodlardan da nesneye referans döndürmelisin. return this; gibi.

    Derken cevap gelmiş bile.



    < Bu mesaj bu kişi tarafından değiştirildi Guest-BF8E9B238 -- 9 Şubat 2013; 22:14:09 >
  • çok teşekkür ederim peki bu mesele javanın hangi konu başlığı altında inceleniyor yani googleda ne diye aratsam ayrıntılı bilgiye ulaşabilirim.
  • peki bu nesneyi static tanımlarsam tostring metodunu da şu şekilde ezersem.

    return queryString;
    olcak şekilde
    direkt şu şekil kullanma şansım var mı?

    string Sorgu=Querry().Select("*").From("tablo").Where("kullanıcıadı").equals("rocket11").toString();
  • acikcasi bu sisteme ozel bir isim vermislermidir bilmiyorum ancak yazilim tasarimi alanina giren bir konu. buna benzer bir yapiyi ben daha once bir json kutuphanesinde gordum bir de sanirim java gui kutuphanesi olan swing buna benzer bir sistemde calisiyor.

    olur ancak 2 tane farki query lazim oldugunda cakarsin. :)



    < Bu mesaj bu kişi tarafından değiştirildi Guest-E41040413 -- 9 Şubat 2013; 23:02:04 >
  • quote:

    Orijinalden alıntı: rocket11

    çok teşekkür ederim peki bu mesele javanın hangi konu başlığı altında inceleniyor yani googleda ne diye aratsam ayrıntılı bilgiye ulaşabilirim.

    Konuları şu bu diye ayırman yanlış. Bi giriştinmi hepsini öğrenmelisin. Zaten java katı kuralları ve sınırları belli olan bir dil.

    Diğer sorun da olur gibi görünüyor buradan bakınca.
  • peki şu farkı nasıl oluşturabilirim?

    select().from() select dedikten sonra sadece from metotunu kullanabilmeliyim ama direkt select().where() şeklinde kullanamamam lazım yani aynı bir sql sentaksını taklit etmeli ilerde iş karmaşıklaşınca belli bir düzeni takip etmesi işimi kolaylaştırması için önemli peki bunu nasıl sağlarım

    Teşekkürler İyi Geceler...
  • mesela eğer insertinto() kullandı isem sadece executenonquerry kullana bilmeliyim.
  • Madem ki sql i sınıf içine sarmalıyorsun, onu taklit etmek neden? Fikir güzel, ama bence bunu oop ye uygun şekilde yaparsan daha yaratıcı olur. Bak burada adamlar nasıl sorgu yapıyor. Tabi bunun sql le alakası yok, ayrı bir veritabanı o. Özellikle "Native queries" kısmını bir incele derim.

    http://community.versant.com/documentation/reference/db4o-8.0/java/tutorial/
  • elektro_gadget,

    Bilgilendirme için teşekkür ederim.

    aslında yapmak istediğim şeyi iç sınıf yapısı kullanarak sağlayabileceğime inanıyorum örneğin delete sınıfını querry sınıfının atında querryden extend ettim iç sınıfı statik yaptım ve uygulaya bileceği metotları implement From,Where,Equals,Custom,ExecutenonQuery{ // şeklinde bunları daha sonra sınıf içinde tanımlayacağım ortaya bişeyler çıksın burdan koymayı düşünüyorum.
  • merhaba aradığınız tasarım şablonunun adı "builder pattern" bu şekilde arama yaparsanız istediğinizi bulabilirsiniz..
  • quote:

    Orijinalden alıntı: bestanealtcizgi

    merhaba aradığınız tasarım şablonunun adı "builder pattern" bu şekilde arama yaparsanız istediğinizi bulabilirsiniz..

    Aslında builder pattern yerine Design Pattern diye aratması bence daha mantıklı olur. Böylelikle bütün patternleri de görmüş olur.
  • Önce ki yorum da arkadaşın yazdığına katılıp fikrimi söylesem de bence bununla zaman kaybediceğine Linq to SQL kullanmayı tercih etmeni öneririm. Çünkü yaptığın her şey zaten LINQ'e hitap ediyor.

    Sen OOP ile kendin öyle sorgu yapacaksan bir şey diyemem ama LINQ kullanmanı tavsiyelerim öyle bir şey yapmak istiyorsan.


    Arkadaşın verdiği linki araştırdıktan sonra şunu da deme gereksinimi duydum.
    Ado.Net Mimarilerine de göz gezdirmeni tavsiyelerim. Çoklu katmanlı mimariyi kullanmayı gerçekten çok severim ve kullanırımda. Ve çokta hayat kurtarır :)



    < Bu mesaj bu kişi tarafından değiştirildi SE.exe -- 11 Şubat 2013; 19:26:35 >
  • quote:

    Orijinalden alıntı: zjnan

    Önce ki yorum da arkadaşın yazdığına katılıp fikrimi söylesem de bence bununla zaman kaybediceğine Linq to SQL kullanmayı tercih etmeni öneririm. Çünkü yaptığın her şey zaten LINQ'e hitap ediyor.

    Sen OOP ile kendin öyle sorgu yapacaksan bir şey diyemem ama LINQ kullanmanı tavsiyelerim öyle bir şey yapmak istiyorsan.


    Arkadaşın verdiği linki araştırdıktan sonra şunu da deme gereksinimi duydum.
    Ado.Net Mimarilerine de göz gezdirmeni tavsiyelerim. Çoklu katmanlı mimariyi kullanmayı gerçekten çok severim ve kullanırımda. Ve çokta hayat kurtarır :)

    Linq kullanmadım javada yazıyorum javada muadili bir kütüphane varmı bilmiyorum Ben tasarım desenleri classlar inheritance interfaceler hakkında bilgim artsın deneyim olsun diye yapmak istiyordum.
    zevkine tekerleği yeniden icat ediyorum yani.
    Yorumlarınız için teşekkür ederim Linqi bi inceleyeyim ben yinede. Çoklu katmalı mimari derken? Biraz açabilir misiniz?
    Teşekkürler.

    Ha birde arkadaşlar başlık için ne önerirsiniz çok saçma kaldı.




  • quote:

    Orijinalden alıntı: rocket11

    quote:

    Orijinalden alıntı: zjnan

    Önce ki yorum da arkadaşın yazdığına katılıp fikrimi söylesem de bence bununla zaman kaybediceğine Linq to SQL kullanmayı tercih etmeni öneririm. Çünkü yaptığın her şey zaten LINQ'e hitap ediyor.

    Sen OOP ile kendin öyle sorgu yapacaksan bir şey diyemem ama LINQ kullanmanı tavsiyelerim öyle bir şey yapmak istiyorsan.


    Arkadaşın verdiği linki araştırdıktan sonra şunu da deme gereksinimi duydum.
    Ado.Net Mimarilerine de göz gezdirmeni tavsiyelerim. Çoklu katmanlı mimariyi kullanmayı gerçekten çok severim ve kullanırımda. Ve çokta hayat kurtarır :)

    Linq kullanmadım javada yazıyorum javada muadili bir kütüphane varmı bilmiyorum Ben tasarım desenleri classlar inheritance interfaceler hakkında bilgim artsın deneyim olsun diye yapmak istiyordum.
    zevkine tekerleği yeniden icat ediyorum yani.
    Yorumlarınız için teşekkür ederim Linqi bi inceleyeyim ben yinede. Çoklu katmalı mimari derken? Biraz açabilir misiniz?
    Teşekkürler.

    Ha birde arkadaşlar başlık için ne önerirsiniz çok saçma kaldı.


    Java olduğunu görmedim. Inheritance , Interface gibi konular hakkında bilgin artsın diye yapıyorsan tabi ki de sonuna kadar git. Hatta tekerlek demişken , Lastiği üret , jantı yaparken lastikten miras al

    Çoklu katman mimarı derken ise , buton altı yapmak yerine , kendi mimarini oluşturup kullanmak diyebilirim.

    Örneğin yığınlarca Sql satırları yapıcağına , Mimari de bir kere provider kısmın da SQL satırlarını oluşturup , sonrasında interface oluşturup service katmanlarına implement edip orada implement ettiğin entitylerin içerisinde yazdığı kodu presentasion yani userInterface kısmında bir kere çağırıp kullanacağın nesnenin dataSource vermen gibi diyebilirim.

    Sen araştırmalarına devam etmeni öneririm. Kolay gelsin dostum. LINQ'i de şiddetle öğrenmeni öneriyorum bu arada. Devir linq devri :)




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.