Veri kaynağı - Datasource

Veri kaynağı bir bağlantı kurulumuna verilen isimdir. veri tabanı bir sunucu. Ad, genellikle veritabanına bir sorgu oluştururken kullanılır. veri kaynağı adı (DSN) veritabanı için dosya adıyla aynı olmak zorunda değildir. Örneğin, adlı bir veritabanı dosyası friends.mdb DSN'si ile kurulabilir okul. Sonra DSN okul bir sorgu gerçekleştirirken veritabanına başvurmak için kullanılır.

Sun'ın DataSource sürümü [1]

Bu DataSource nesnesinin temsil ettiği fiziksel veri kaynağına bağlantılar için bir fabrika. DriverManager özelliğine bir alternatif olan bir DataSource nesnesi, bir bağlantı elde etmenin tercih edilen yoludur. DataSource arayüzünü uygulayan bir nesne, tipik olarak bir adlandırma hizmetine, Java Adlandırma ve Dizin Arayüzü (JNDI) API.

DataSource arabirimi, bir sürücü satıcısı tarafından uygulanır. Üç tür uygulama vardır:

  • Temel uygulama - standart bir Bağlantı nesnesi üretir
  • Bağlantı havuzu oluşturma uygulama - bağlantı havuzuna otomatik olarak katılacak bir Bağlantı nesnesi üretir. Bu uygulama, bir orta katman bağlantı havuzu oluşturma yöneticisiyle çalışır.
  • Dağıtılmış işlem uygulama - dağıtılmış işlemler için kullanılabilen ve neredeyse her zaman bağlantı havuzuna katılan bir Bağlantı nesnesi üretir. Bu uygulama, orta kademe bir işlem yöneticisiyle ve neredeyse her zaman bir bağlantı havuzu yöneticisiyle çalışır.

DataSource nesnesi, gerektiğinde değiştirilebilen özelliklere sahiptir. Örneğin, veri kaynağı farklı bir sunucuya taşınırsa, sunucunun özelliği değiştirilebilir. Bunun yararı, veri kaynağının özellikleri değiştirilebildiği için, bu veri kaynağına erişen herhangi bir kodun değiştirilmesine gerek olmamasıdır.

Bir DataSource nesnesi aracılığıyla erişilen bir sürücü, kendisini DriverManager'a kaydetmez. Bunun yerine, bir DataSource nesnesi bir arama işlemiyle alınır ve ardından bir Bağlantı nesnesi oluşturmak için kullanılır. Temel bir uygulamayla, bir DataSource nesnesi aracılığıyla elde edilen bağlantı, DriverManager tesisi aracılığıyla elde edilen bir bağlantıyla aynıdır.

Sun'ın DataSource Genel Bakış [2]

Bir DataSource nesnesi, bir veri kaynağının Java programlama dili. Temel terimlerle, bir veri kaynağı, verileri depolamak için bir olanaktır. Büyük bir şirket için karmaşık bir veritabanı kadar karmaşık veya satırlar ve sütunlar içeren bir dosya kadar basit olabilir. Bir veri kaynağı uzak bir sunucuda veya yerel bir masaüstü makinede olabilir. Uygulamalar bir bağlantı kullanarak bir veri kaynağına erişir ve bir DataSource nesnesi, DataSource örneğinin temsil ettiği belirli veri kaynağına bağlantılar için bir fabrika olarak düşünülebilir. DataSource arabirimi, bir veri kaynağıyla bağlantı kurmak için iki yöntem sağlar.

Bir DataSource nesnesinin kullanılması, bir veri kaynağına bağlantı kurmak için DriverManager'ı kullanmaya tercih edilen alternatiftir. DriverManager sınıfı ve DataSource arabiriminin bir bağlantı oluşturmaya yönelik yöntemlere, bağlantı kurmak için bir zaman aşımı sınırı alma ve belirlemeye yönelik yöntemlere ve günlük kaydı için bir akış alma ve ayarlamaya yönelik yöntemlere sahip olduğu ölçüde benzerdirler.

Bununla birlikte, farklılıkları benzerliklerinden daha önemlidir. DriverManager'dan farklı olarak, bir DataSource nesnesi, temsil ettiği veri kaynağını tanımlayan ve açıklayan özelliklere sahiptir. Ayrıca, bir DataSource nesnesi bir Java Adlandırma ve Dizin Arayüzü (JNDI) adlandırma hizmetiyle çalışır ve onu kullanan uygulamalardan ayrı olarak oluşturulabilir, dağıtılabilir ve yönetilebilir. Bir sürücü satıcısı, DataSource arabiriminin temel uygulaması olan bir sınıf sağlayacaktır. Java Veritabanı Bağlantısı (JDBC) 2.0 veya 3.0 sürücü ürünü. Bir sistem yöneticisinin bir DataSource nesnesini bir JNDI adlandırma hizmetine kaydettirmek için ne yaptığı ve bir uygulamanın, JNDI adlandırma hizmeti ile kaydedilmiş bir DataSource nesnesini kullanarak bir veri kaynağına bağlantı kurmak için ne yaptığı bu bölümde daha sonra açıklanmaktadır.

Bir JNDI adlandırma hizmetine kayıtlı olmak, bir DataSource nesnesine DriverManager'a göre iki büyük avantaj sağlar. İlk olarak, bir uygulamanın DriverManager'da olduğu gibi sürücü bilgisini sabit kodlaması gerekmez. Bir programcı, veri kaynağı için mantıksal bir ad seçebilir ve mantıksal adı bir JNDI adlandırma hizmetine kaydedebilir. Uygulama mantıksal adı kullanır ve JNDI adlandırma hizmeti, mantıksal adla ilişkili DataSource nesnesini sağlar. DataSource nesnesi daha sonra temsil ettiği veri kaynağına bir bağlantı oluşturmak için kullanılabilir.

İkinci büyük avantaj, DataSource tesisinin, geliştiricilerin bağlantı havuzu oluşturma ve dağıtılmış işlemler gibi özelliklerden yararlanmak için bir DataSource sınıfını uygulamasına izin vermesidir. Bağlantı havuzu, her bağlantı istendiğinde yeni bir fiziksel bağlantı oluşturmak yerine bağlantıları yeniden kullanarak performansı önemli ölçüde artırabilir. Dağıtılmış işlemleri kullanma yeteneği, bir uygulamanın büyük işletmelerin ağır hizmet veritabanı işlerini yapmasını sağlar.

Bir uygulama bir bağlantı elde etmek için DriverManager'ı veya bir DataSource nesnesini kullanabilse de, bir DataSource nesnesinin kullanılması önemli avantajlar sunar ve bir bağlantı kurmanın önerilen yoludur.

1.4'ten beri

Dan beri Java EE 6 JNDI'ya bağlı bir DataSource, alternatif olarak, doğrudan uygulama içinden bildirimsel bir şekilde yapılandırılabilir.[1][2] Bu alternatif, özellikle kendi kendine yeten uygulamalar için veya gömülü bir veritabanını şeffaf bir şekilde kullanmak için kullanışlıdır.[3][4]

Yahoo'nun DataSource sürümü [3]

Bir DataSource, diğer nesnelerin etkileşime girmesi için ortak bir öngörülebilir API sunan canlı bir veri kümesinin soyut bir temsilidir. Verilerinizin doğası, miktarı, karmaşıklığı ve sorgu sonuçlarını döndürme mantığı, DataSource türünüzü belirlemede rol oynar. Küçük miktarlarda basit metin verileri için, bir JavaScript dizi iyi bir seçimdir. Verilerinizin küçük bir ayak izi varsa, ancak görüntülenmeden önce basit bir hesaplama veya dönüştürme filtresi gerektiriyorsa, JavaScript işlevi doğru yaklaşım olabilir. Çok büyük veri kümeleri için (örneğin, güçlü bir ilişkisel veritabanı) veya üçüncü taraf bir web hizmetine erişmek için bir Komut Dosyası Düğümünün veya XHR Veri Kaynağının gücünden kesinlikle yararlanmanız gerekecektir.

Referanslar

  1. ^ "Arşivlenmiş kopya". Arşivlenen orijinal 2013-12-03 tarihinde. Alındı 2013-11-30.CS1 Maint: başlık olarak arşivlenmiş kopya (bağlantı)
  2. ^ http://docs.oracle.com/javaee/6/api/javax/annotation/sql/DataSourceDefinition.html
  3. ^ http://henk53.wordpress.com/2012/06/30/the-state-of-datasourcedefinition-in-java-ee
  4. ^ http://henk53.wordpress.com/2012/04/#step10