數據庫工具包:aSQLite+

jopen 9年前發布 | 18K 次閱讀 aSQLite+ Android開發 移動開發

aSQLite+ 是一個小巧的數據庫工具包,正如其名字的意思,定位于為Android SQLite數據庫添加一些實用的功能。提供相當多便利的方法幫助開發人員拼接和執行增刪改查的SQL語句。

Android的核心類庫也提供了一些生成SQL語句,執行SQL操作的工具類,但基本上都不太實用,體現在方法的簽名眾多,調用后仍然到開發者做游標關閉或數據庫關閉等非業務邏輯的操作。

假設你想生成以下的一條SQL語句:


SELECT product_id, product_name FROM Products WHERE price >= 10 ORDER BY price DESC LIMIT 10

如果使用Android SQLite類庫來實現,大致寫法如下:



String sql = android.database.sqlite.SQLiteQueryBuilder.buildQueryString(false,
        "Products", new String[]{"product_id", "product_name"}, "price >= 10",
        null, null, "price DESC", "10");

當然,還有ORM或直接用"+"操作符連接各個子句的字符串拼接方法。個人認為,在中小型的Android應用中使用ORM純屬殺雞用牛刀,里面的反射操作也會對主線程產生性能影響。至于傳統的用"+"拼接字符串,更是增大開發與維護的成本。那,以上的SQL如果使用aSQLite+將會是如何做?



Statement statement = QueryStatement.produce("product_id", "product_name")
        .from("Products").where("price").egt(10).orderBy("price").desc().limit(10);
String sql = statement.toString();

aSQLite+通過將每個SQL關鍵字或子句映射為方法,基本覆蓋了全部的語法,實現SQL的簡易拼接,使代碼更清晰易懂,便于維護,大大簡化了SQL的構造。開發者可以通過github上的眾多示例查看其完善的功能。


另外,aSQLite+實現了一個名為DBOverseer.java的類,用于執行生成的SQL語句,使得開發者可以用兩三行以內的代碼實現提取整數、字符串、列表、分類列表、反射實例,執行插入、更新,批量操作。

項目內提供詳細的代碼注釋,外加覆蓋所有功能的測試用例,還有Maven及Jar包等不同的集成方式可供選擇。歡迎開發者試用并提供測試意見。

項目主頁:http://www.baiduhome.net/lib/view/home/1420809989375

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!