Android 数据持久化(一)之LitePal

Android 数据持久化(一)之LitePal


1. 简介

LitePal是一个数据库开源框架,采用的是对象关系映射模型(ORM)的模式,这个比较方便在Android数据库方面的开发,它把数据库的功能封装了起来,不用写SQL语句就可以完成建表和增删改的操作。
关于这个数据库开源框架它的源代码和相应的用法都已经在Github上公布了,https://github.com/LitePalFramework/LitePal 这个就是链接地址,上面也给出了很详细的用法说明,相比较之前Android给出的三种数据持久化的方法简单了很多,虽然github上介绍的很详细了,但这里自己还是做了一个很小的总结,这个方便好用也没有太多的内容,尤其是如果了解SQL语句的话,就会更好理解。

2.LitePal配置

项目的build.gradle文件下的dependencies闭包中添加compile 'org.litepal.android:core:1.3.2'来添加这个开源库。
AndroidManifest.xml文件中添加

   <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:name="org.litepal.LitePalApplication"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
              <action android:name="android.intent.action.MAIN" />

              <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

添加litepal.xml文件,在/src/main/ 创建一个assets目录,其下创建litepal.xml文件

3.LitePal数据操作

3.1创建数据

LitePal采用的是对象关系映射(ORM)的模式,是将面向对象的语言和面向关系的数据库两者建立的这种映射关系。
所以在创建数据库前,先要定义一个类用来创建表,如定义Book类 这个类的定义其实就是典型的Java Bean。这个新建的模型类如要进行CRUD(增删改查)操作,就要继承DataSupport类代码如下:

    public class Book extends DataSupport{
        private int id;
        private String author;
        private double price;
        private int pages;
        private String name;

        // generated getters and setters.
        ...
    }

要将这个Book类添加到映射模型litepal.xml中,要使用完整的类名(路径)如下:

<?xml version="1.0" encoding="utf-8"?>
        <litepal>
            <dbname value="Bookstore" ></dbname>
            <version value="2"></version>
            <list>
        <!--模型类映射表-->
                <mapping class="com.example.litepaltest.Book" ></mapping></list>
        </litepal>

3.2添加数据

这个也是插入数据的一种方式setXXX()

Book book = new Book();
book.setName("aaa");//添加数据
book.setAuthor("jack");
book.setPages(111);
book.setPrice(122);
book.save();//保存添加的数据
book.setPrice(222);
book.save();//此时是直接更新当前对象的数据

3.3更新数据

book.setPrice(333);
//更新name=aaa,author=jack 记录的数据
book.updateAll("name = ? and author = ?", "aaa", "jack");

3.4删除数据

DataSupport.deleteAll(Book.class, "price < ?", "122");//删除price<122的记录,不加约束条件就是删除所有数据

3.5查询数据

下面的使用的很清晰的写到这个查询的约束条件

List<Book> bookList = DataSupport.select("name", "author", "pages")
                            .where("pages > ?", "50")
                            .order("pages")
                            .limit(10)
                            .offset(10)
                            .find(Book.class);
for (Book books : bookList) {
         Log.d("MainActiity", "book name is " + books.getName());
         Log.d("MainActiity", "book author is " + books.getAuthor());
         Log.d("MainActiity", "book pages is " + books.getPages());
         Log.d("MainActiity", "book price is " + books.getPrice());
                    }

上面是对LitePal的简单的介绍,但还是用到关系数据库的一些知识,这个开源框架帮我们简化了这个开发的过程。

发布了30 篇原创文章 · 获赞 5 · 访问量 7679

猜你喜欢

转载自blog.csdn.net/c0586/article/details/58606003