數據庫工具包:aSQLite+
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包等不同的集成方式可供選擇。歡迎開發者試用并提供測試意見。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!