quicksqlite简介
简介
github地址: https://github.com/Sunyang0511/quicksqlite
quicksqlite是一款基于android sqlite数据库的ORM框架,它被创建的目的就是为了简化android上操作sqlite数据库的步骤,让android程序员在使用sqlite时不用去关注表的结构,把注意力集中在业务实现上,从而提高开发效率,从此告别加班~
这个开源库起源于我平时工作时自己写的一个sqlitehelper类,一个简单的把对象转为对应的sql语句的工具类,在业务简单的情况下它工作的很好,帮我节省了不少时间,但是随着业务复杂度的飙升,维护数据库表让我越来越痛苦,每次改动数据库表之后都要书写大段的注释来说明表结构,还要改动对应的旧的数据模型。为什么这一切不能自动完成呢,于是我就扩展了工具类,写出了这个库.
设计库的时候我借鉴了微软的EF库的CodeFirst思想,即从代码生成数据表。具体思路就是在项目中定义好model类,然后在执行增删改查时从model推导出数据库中对应表的结构,然后生成对应sql语句并执行。
目前我已经实现了model到单数据表的推导,即一个model对应一张表。下一版本目标是实现model到视图的推导,即从model中推导出多张表及它们之间的关系。
特色
基于model的增删改查。隐形的数据表操作,只要在代码里建立model,即可使用增删改查,只需专注于业务,不用关心表的维护。
如何引用
Maven
<dependency>
<groupId>com.sunyang.quicksqlite</groupId>
<artifactId>quicksqlite</artifactId>
<version>1.0.0</version>
<type>pom</type>
</dependency>
Gradle
dependencies {
compile 'com.sunyang.quicksqlite:quicksqlite:1.0.0'
}
简单示例
insert:
TestModel test = new TestModel();
test.setField1("测试字段1");
test.setField2(2);
test.setField3(3D);
SqliteHelper.getInstance().set(test);//数据库中会自动生成包含TestModel中所有字段的数据表
query:
//使用Query查询链生成查询,不用考虑表是否存在,没有异常,不会报错,只要做好null值处理即可.
//目前只支持<,>,=,!=,>=,<=等操作符
List<TestModel> temp = SqliteHelper.getInstance().get(TestModel.class, Query.build().
filter("field2", "=", 2));
if (temp != null && temp.size() > 0)
tv.setText(temp.get(0).getField1());
update:
TestModel test = new TestModel();
test.setField1("字段全部修改了");
test.setField2(2);
test.setField3(26D);
//全量更新模式,所有字段均会被更新到数据库中
SqliteHelper.getInstance().update(test, Query.build().filter("field2", "=", 2));
//指定更新模式,使用Update类指定需要更新字段
SqliteHelper.getInstance().update(TestModel.class, Update.build().
update("field1","更新指定字段"),Query.build().filter("field2","=",2));
delete:
//删除指定表指定字段,query传null则清空表数据
SqliteHelper.getInstance().delete(TestModel.class, Query.build().filter("field2", "=", 2));