详解关于嵌入式开发中的Android LitePal的介绍与使用说明

    作者:课课家教育更新于: 2016-05-19 14:39:53

        在学习LitePal介绍与说明前,先了解一下嵌入式,嵌入式是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。而如果从应用对象上定义,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。然而嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。

    详解关于嵌入式开发中的Android LitePal的介绍与使用说明_android嵌入式_LitePal_SQLite数据库_课课家

        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文件,然后将下面的代码拷贝进去。

    新建一个litepal.xml文件

      这是唯一的一个配置文件,里面的属性设置都是非常的简单。

      1)dbname用于配置工程的数据库文件名。

      2)version是用于配置数据库的版本信息。然而当每次升级数据库时,该版本号加1。

      3)list用于配置映射类。

      3. 配置LitePalapplication

      如果在操作数据库时,这是需要使用到Context参数,如果这个参数我们不想每次都传递,那么只需要在AndroidManifest.xml中配置下LitePalApplication即可,如下:

    在AndroidManifest.xml中配置下LitePalApplication

      当然,你也可能有自己的Application并且配置好它,如下:

    Application

      在配置时,只需要将MyOwnApplication由原来的继承Application类改成继承LitePalApplication类就可以,如下:

    继承LitePalApplication类

      但是如果你的MyOwnApplication必须继承另外的Application类,如AnotherApplication类,那么你可以直接调用LitePalApplication.initialize(context)而无需继承LiteApplication类,

         如下代码所示:

    无需继承LiteApplication类

      在原则上我们要尽可能早的调用LitePalApplication.initialize(context),比如合适的调用位置是在Application的onCreate()里调用。调用时传递的参数是Application的context,但需要注意的是不要使用任何activity或service的实例作为参数,否则可能发生内存泄漏。

           那么下面步入LitePal主题内容

      1. 创建表格

      首先定义各种model,比如有两个model:Album和Song,定义如下:

    Album和Song

      将这两个model添加到litepal.xml的映射表中,如下:

    litepal.xml的映射表中

      一旦操作数据库时,将自动生成数据库表格。比如使用以下代码获取SQLiteDatabase时,

      SQLiteDatabase db = Connector.getDatabase();

      将自动生成album和song两张数据库表格,如下:

    自动生成album和song两张数据库表格

      2. 升级表格

      在LitePal中是非常容易实现升级表格的。

    升级表格

      上述代码中,添加了releaseDate并且price标注为ignore。

    price标注为ignore

      只需要在litepal.xml中升级版本号,那么下次操作数据库时将自动升级表格:ablum表中添加了releasedate列,删除了price列,其他列的数据原封不动。

      以下一些升级情况LitePal无法处理并且被升级表格里的所有数据将被清空:

      1)添加了一个标注为 unique = true 的属性;

      2)修改某个属性的标注为 unique = true;

      3)修改某个属性的标注为 nullable = false;

      以上情况会导致数据丢失,要格外注意。

      3. 保存数据

      每一个继承DataSupport类的model都有save()方法。

    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 allSongs = DataSupport.findAll(Song.class);

      构建复杂的集群查询:

      List songs = DataSupport.where("name like ?", "song%").order("duration").find(Song.class);

          总结一下上文,上文简单介绍了LitePal 的功能,下载软件以及安装软件等等的知识,主要详细介绍了导入库中的Eclipse和Android Studio的使用,和 配置litepal.xml以及配置LitePalApplication,在介绍配置LitePalApplication方面是从创建表格、升级表格、保存数据、更新数据、删除数据和查询数据这六方面来解释。

课课家教育

未登录