SQL veritabanlarıyla çalışmak için stratejiler

Adobe AIR 1.0 ve üstü

Bir uygulamanın yerel SQL veritabanlarına erişmesi ve bu veritabanlarıyla çalışmasının çeşitli yolları vardır. Uygulama tasarımı, uygulama kodunun düzenlenme biçimi, işlemlerin gerçekleştirilme sırası ve zamanlaması, vb. gibi konularda farklılaşır. Seçtiğiniz teknikler, uygulamanızı geliştirmenin kolaylığı üzerinde etkili olabilir. Bu teknikler, uygulamayı gelecekteki güncellemelerde değiştirmenin kolaylığını etkileyebilir. Uygulamanın kullanıcının bakış açısına göre ne kadar iyi çalıştığı da bu tekniklere göre değişebilir.

Önceden doldurulmuş bir veritabanını dağıtma

Uygulamanızda bir AIR yerel SQL veritabanı kullandığınızda, uygulama tablolar, sütunlar, vb. içeren belirli bir yapıya sahip bir veritabanı bekler. Bazı uygulamalar veritabanı dosyasının önceden veriyle doldurulmuş olmasını da bekler. Veritabanının uygun bir yapıya sahip olmasını sağlamanın bir yolu veritabanını uygulama kodunda oluşturmaktır. Uygulama yüklendiğinde, belirli bir konumdaki veritabanı dosyasının varlığını kontrol eder. Dosya mevcut değilse, uygulama veritabanı dosyasını ve veritabanı yapısını oluşturmak, tabloları başlangıç verileriyle doldurmak için bir dizi komut yürütür.

Veritabanını ve veritabanı tablolarını oluşturan kod genellikle karmaşıktır. Bu kod, uygulamanın yüklenen kullanım ömründe genellikle yalnızca bir defa kullanılır, ancak yine de uygulamanın boyutuna ve karmaşıklığına katkıda bulunur. Veritabanını, yapıyı ve verileri programlama yoluyla oluşturmaya alternatif olarak, uygulamanızla birlikte önceden doldurulmuş bir veritabanını dağıtabilirsiniz. Önceden doldurulmuş bir veritabanı dağıtmak için, veritabanı dosyasını uygulamanın AIR paketine dahil edin.

AIR paketinde bulunan tüm dosyalar gibi, paketlenmiş bir veritabanı dosyası uygulama dizinine yüklenir ( File.applicationDirectory özelliğiyle temsil edilen dizin). Ancak, bu dizindeki dosyalar salt okunur dosyalardır. AIR paketindeki dosyayı bir “şablon” veritabanı olarak kullanın. Kullanıcı uygulamayı ilk kez çalıştırdığında, orijinal veritabanı dosyasını kullanıcının Uygulama depolama dizinine işaret etme 'ne (veya başka bir konuma) kopyalayın ve uygulamada bu veritabanını kullanın.

Yerel SQL veritabanlarıyla çalışmak için en iyi uygulamalar

Aşağıdaki liste, yerel SQL veritabanlarıyla çalışırken performansı, güvenliği ve uygulama bakımınızın kolaylığını artırmak için kullanabileceğiniz önerilen tekniklerin kümesidir.

Veritabanı bağlantılarını önceden oluşturun

Uygulamanız ilk yüklendiğinde herhangi bir ifade yürütmese bile, bir SQLConnection nesnesini başlatın ve ifade çalıştırma sırasında gecikmeleri önlemek için önceden (örneğin ilk uygulama başlangıcından sonra) bu nesnenin open() veya openAsync() yöntemini çağırın. Bkz. Veritabanına bağlanma .

Veritabanı bağlantılarını yeniden kullanma

Uygulamanızın yürütülmesi sırasında belirli bir veritabanına erişiyorsanız, SQLConnection örneğine ilişkin bir başvuru tutun ve bağlantıyı kapatıp yeniden açmak yerine uygulama boyunca bu başvuruyu yeniden kullanın. Bkz. Veritabanına bağlanma .

Senkronize olmayan yürütme modunu tercih edin

Veri erişim kodunu yazma sırasında işlemleri senkronize olarak yürütmek uygun görünebilir, çünkü senkronize işlemleri kullanmak genellikle daha kısa ve daha az karmaşık kodlar gerektirir. Ancak, Senkronize ve senkronize olmayan veritabanı işlemlerini kullanma bölümünde açıklandığı gibi, senkronize işlemlerin performans üzerinde kullanıcıların açıkça görebildiği, uygulamayı yavaşlatan bir etkisi vardır. Tek bir işlemin aldığı süre işleme ve özellikle işlemin içerdiği veri miktarına göre değişir. Örneğin, veritabanına yalnızca bir satır ekleyen bir SQL INSERT ifadesi, binlerce veri satırı alan bir SELECT ifadesinden çok daha az zaman alır. Ancak, birden çok işlemi gerçekleştirmek için senkronize yürütmeyi kullandığınızda, işlemler genellikle yanyana dizilir. Tek bir işlemin aldığı zaman çok kısa olsa bile, tüm senkronize işlem tamamlanana kadar uygulama donar. Sonuç olarak, yanyana dizilen birden çok işlemin gerektirdiği birikimli süre, uygulamanızı durdurmak için yeterli olabilir.

Özellikle çok sayıda satır içeren işlemler için standart bir yaklaşım olan senkronize olmayan işlemleri kullanın. SELECT sonuçlarını bölümler halinde alma bölümünde anlatıldığı gibi, SELECT ifadesi sonuçları işlemesinin bölümlenmesi için bir teknik mevcuttur. Ancak, bu teknik yalnızca senkronize olmayan yürütme modunda kullanılabilir. Senkronize işlemleri yalnızca senkronize olmayan programlamayı kullanarak belirli işlevleri yürütemediğinizde, uygulamanızın kullanıcılarının performanstan ödün vermesi gerektiğini göz önüne alarak ve uygulamanızın performansının nasıl etkileneceğini bileceğiniz biçimde uygulamanızı test ettiyseniz kullanın. Senkronize olmayan yürütmenin kullanılması daha karmaşık kodlama içerebilir. Ancak, kodu yalnızca bir defa yazmanız gerektiğini, ancak uygulama kullanıcılarının bu kodu hızlı veya yavaş biçimde defalarca kullanmak zorunda olduklarını unutmayın.

Çoğu durumda, yürütülecek her SQL ifadesi için ayrı bir SQLStatement örneği kullanılarak, senkronize olmayan kodun yazılma biçimi bakımından senkronize koda benzemesini sağlayacak şekilde, birden çok SQL işlemi bir defada kuyruğa alınabilir. Daha fazla bilgi için bkz. Senkronize olmayan yürütme modelini anlama .

Ayrı SQL ifadeleri kullanın ve SQLStatement'ın text özelliğini değiştirmeyin.

Bir uygulamada bir defadan çok yürütülen bir SQL ifadesi için, her SQL ifadesine ilişkin ayrı bir SQLStatement örneği oluşturun. SQLStatement örneğini SQL komutu her yürütüldüğünde kullanın. Örneğin, birçok defa gerçekleştirilecek dört farklı SQL işlemi içeren bir uygulama oluşturduğunuzu varsayın. Bu durumda, dört ayrı SQLStatement örneği oluşturun ve her ifadeyi yürütmek için bu ifadenin execute() yöntemini çağırın. Tüm SQL ifadeleri için tek bir SQLStatement örneği kullanarak ifadenin her yürütülmesinden önce text özelliğini yeniden tanımlama alternatifinden kaçının.

İfade parametreleri kullanın

SQLStatement parametreleri kullanın—kullanıcı girişini hiçbir zaman ifade metnine bitiştirmeyin. SQL yerleştirme saldırıları olasılığını engellediğinden, parametre kullanmak uygulamanız için her zaman daha güvenlidir. Sorgularda nesneleri kullanmayı (yalnızca SQL değişmez değerleri yerine) olanaklı kılar. Ayrıca, her yürütüldüklerinde yeniden derlenmeleri gerekmeden yeniden kullanılabildiklerinden, ifadelerin daha verimli biçimde çalışmasını sağlar. Daha fazla bilgi için bkz. İfadelerde parametreler kullanma .