数据库工具包:aSQLite+

jopen 9年前

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.open-open.com/lib/view/home/1420809989375