2011-06-19 6 views
8

Android için Ormlite için yerel dizelerden kaçış dizeleri var mı? Ben bir dize tedarik etmek istiyorsanızOrmlite kaçış dizesi yöntemi?

Örneğin,: ormlite kaçış fonk, bu ormlite \ 'ın kaçış fonk olarak temin edilmesi gerekmektedir.

TestDao.queryForFirst(TestDao.queryBuilder().where().like("stats", stats) 
    .prepare()) 

Ben UpdateBuilder en escapeValue yöntemi kullanılarak çalıştı, ancak yalnızca aşağıdaki değişiklik yapar: 'ormlite kaçış func'. İfadenin başına ve sonuna tek tırnak koyar. Sql enjeksiyon güvenli olması kaçan dizeleri için yerel bir destek var mı? Değilse

, bunu yapmak için yolları nelerdir?

Teşekkür ederiz!

+0

Mayıs '' like() '' ilk dizgisi -Method potansiyel bir enjeksiyon-güvenlik eksikliği olabilir mi? – unlimited101

cevap

15

UpdateBuilder'ın escapeValue yöntemini kullanmayı denedim, ancak yalnızca şu değişikliği yapar: 'ormlite' escape func '. İfadenin başına ve sonuna tek tırnak koyar. Sql enjeksiyon güvenli olması kaçan dizeleri için yerel bir destek var mı?

Bu

bir SSS olduğunu. Bunu yapmanın doğru yolu, bir SelectArg argümanını kullanmaktır; yapı tipi. İşte başka bir question talking about this. İşte
SelectArg selectArg = new SelectArg(stats); 
TestDao.queryForFirst(
    TestDao.queryBuilder().where().like("stats", selectArg).prepare()); 

seçme-arg işlevselliği belgeler var:

http://ormlite.com/docs/select-arg

Ve burada ORMLite kullanıcı listesinde bu konuda bazı tartışmalar var:

http://groups.google.com/group/ormlite-dev/browse_thread/thread/71d07202404f97e7

http://groups.google.com/group/ormlite-user/browse_thread/thread/7ced95c474031e3c

Düzenleme: @Moritz işaret ettiği gibi aslında veritabanını güncelleyerek eğer

, ayrıca UpdateBuilder ile SelectArg kullanabilirsiniz:

SelectArg arg = new SelectArg("Some value"); 
updateBuilder.updateColumnValue(MY_COLUMN, arg); 
+0

Mükemmel, işe yaradı. Teşekkür ederim. – the5threvolution

+1

BTW, bu güncelleştirme bildirimleri için de geçerlidir: 'SelectArg arg = new SelectArg(); arg.setValue ("Bir değer"); updateBuilder.updateColumnValue (MY_COLUMN, arg); ' – Moritz