在学习LitePal介绍与说明前,先了解一下嵌入式,嵌入式是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。而如果从应用对象上定义,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。然而嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。
LitePal for Android
LitePal作为一个Android开源库,它使开发者使用SQLite数据库变得非常容易。 也可以不用写一句SQL语句就可以完成大部分数据库操作,包括创建表,更新表,约束操作,聚合功能等等。更重要的是,LitePal的安装是相当简单的,5分钟之内就可以将它集成到你的工程里。
功能
1)使用对象关系映射(ORM) 模型。
2)几乎零配置(只有一个配置文件,该配置文件属性很少)。
3)自动维护所有表格(比如创建、更改、删除表格)。
4)提供封装的API,无需写SQL语句。
5)非常好的集群查询功能。
6)依然可以选择使用SQL,LitePal提供比原始更易用更好的API接口。
快速安装
1. 导入库
使用Eclipse
1.可以下载最新的jar,也可下载其他历史版本。
2.然后将jar放到工程里的库文件夹里。
使用Android Studio
编辑build.gradle文件并添加以下依赖说明:
dependencies {
compile 'org.litepal.android:core:1.3.0'
}
2. 配置litepal.xml
在工程里的assets文件夹里新建一个litepal.xml文件,然后将下面的代码拷贝进去。
这是唯一的一个配置文件,里面的属性设置都是非常的简单。
1)dbname用于配置工程的数据库文件名。
2)version是用于配置数据库的版本信息。然而当每次升级数据库时,该版本号加1。
3)list用于配置映射类。
3. 配置LitePalapplication
如果在操作数据库时,这是需要使用到Context参数,如果这个参数我们不想每次都传递,那么只需要在AndroidManifest.xml中配置下LitePalApplication即可,如下:
当然,你也可能有自己的Application并且配置好它,如下:
在配置时,只需要将MyOwnApplication由原来的继承Application类改成继承LitePalApplication类就可以,如下:
但是如果你的MyOwnApplication必须继承另外的Application类,如AnotherApplication类,那么你可以直接调用LitePalApplication.initialize(context)而无需继承LiteApplication类,
如下代码所示:
在原则上我们要尽可能早的调用LitePalApplication.initialize(context),比如合适的调用位置是在Application的onCreate()里调用。调用时传递的参数是Application的context,但需要注意的是不要使用任何activity或service的实例作为参数,否则可能发生内存泄漏。
那么下面步入LitePal主题内容
1. 创建表格
首先定义各种model,比如有两个model:Album和Song,定义如下:
将这两个model添加到litepal.xml的映射表中,如下:
一旦操作数据库时,将自动生成数据库表格。比如使用以下代码获取SQLiteDatabase时,
SQLiteDatabase db = Connector.getDatabase();
将自动生成album和song两张数据库表格,如下:
2. 升级表格
在LitePal中是非常容易实现升级表格的。
上述代码中,添加了releaseDate并且price标注为ignore。
只需要在litepal.xml中升级版本号,那么下次操作数据库时将自动升级表格:ablum表中添加了releasedate列,删除了price列,其他列的数据原封不动。
以下一些升级情况LitePal无法处理并且被升级表格里的所有数据将被清空:
1)添加了一个标注为 unique = true 的属性;
2)修改某个属性的标注为 unique = true;
3)修改某个属性的标注为 nullable = false;
以上情况会导致数据丢失,要格外注意。
3. 保存数据
每一个继承DataSupport类的model都有save()方法。
以上代码实现将album, song1和song2插入到数据库中并建议关联。
4. 更新数据
继承DataSupport类的每一个model都有update()和updateAll()方法。update()可更新指定id的单条记录,如下:
Album albumToUpdate = new Album();
albumToUpdate.setPrice(20.99f); // raise the price
albumToUpdate.update(id);
updateAll()可同时更新满足一定条件的多条记录,如下:
Album albumToUpdate = new Album();
albumToUpdate.setPrice(20.99f); // raise the price
albumToUpdate.updateAll("name = ?", "album");
5. 删除数据
调用DataSupport的静态方法delete()可删除指定id的单条记录:
DataSupport.delete(Song.class, id);
也可调用静态方法deleteAll()删除多条记录:
DataSupport.deleteAll(Song.class, "duration > ?" , "350");
6. 查询数据
查询song表中指定id的单条记录:
Song song = DataSupport.find(Song.class, id);
查询song表中的所有记录:
List
构建复杂的集群查询:
List
总结一下上文,上文简单介绍了LitePal 的功能,下载软件以及安装软件等等的知识,主要详细介绍了导入库中的Eclipse和Android Studio的使用,和 配置litepal.xml以及配置LitePalApplication,在介绍配置LitePalApplication方面是从创建表格、升级表格、保存数据、更新数据、删除数据和查询数据这六方面来解释。
¥398.00
¥98.00
¥199.00
¥179.00