美文网首页安卓开发小历程
litepal数据库的简单配置使用

litepal数据库的简单配置使用

作者: 星缘邢 | 来源:发表于2017-06-18 22:12 被阅读0次

    前言

    说真的安卓原生的数据操作是真的复杂,对于我这种渣渣来说确实是个门槛,所以准备先从郭霖大神的开源项目litepal学起,后期再填坑,看了多篇文章显示litepal的性能可能稍微弱一点,但是对于一些小的应用APP,那种差距简直是微不足道的,况且这个开源库可读性,效率都提高了。废话不多说,下面开始。

    简单的开始-添加依赖

    现在一般都是Android Studio 的开发者,所以直接在项目的build.gradle中添加下面的代码
    <pre>
    dependencies {
    compile 'org.litepal.android:core:1.3.0'
    }
    </pre>

    配置litepal文件

    在assets文件中添加litepal.xml文件(一般assets文件夹新建 并和 src 同目录很重要)

    文件内容如下
    <pre>
    <?xml version="1.0" encoding="utf-8"?>
    <litepal>
    <dbname value="litepal" ></dbname>
    <version value="1" ></version>
    <list>
    <mapping class="com.example.xxx.testlitepal.Book"></mapping>
    </list>
    </litepal>
    </pre>

    其中dbname标签的value值为数据库名
    version标签的value值为当前的数据库版本号
    升级时只需版本号 +1
    <list>标签中<mapping class="这里是完整的类的路径"></mapping>

    配置liteAppliaction

    <pre>
    <application
    android:name="org.litepal.LitePalApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    </pre>

    在AndroidManifest.xml添加 android:name="org.litepal.LitePalApplication"

    也可以继承自己的Application

    映射模型类

    自己需要先建一个数据模型类 然后就可以对数据库进行映射

    (抄一段)

    LitePal的映射规则是非常轻量级的,不像一些其它的数据库框架,需要为每个模型类单独配置一个映射关系的XML,LitePal的所有映射都是自动完成的。根据LitePal的数据类型支持,可以进行对象关系映射的数据类型一共有8种,int、short、long、float、double、boolean、String和Date。只要是声明成这8种数据类型的字段都会被自动映射到数据库表中,并不需要进行任何额外的配置。

    我的建类如下
    <pre>
    public class Book extends DataSupport{
    private int id;
    private String author;
    private int pages;
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getAuthor() {
    return author;
    }
    public void setAuthor(String author) {
    this.author = author;
    }
    public int getPages() {
    return pages;
    }
    public void setPages(int pages) {
    this.pages = pages;
    }
    }
    </pre>

    继承DataSupport可以进行curd操作,不继承则无法操作。。。
    貌似private 声明的属性才能映射到数据库中,可以据此选择是否需要映射到数据库中

    添加数据

    1. 声明一个数据类
    2. 设置该类的属性值
    3. 调用方法save()
      示例:
      <pre>
      Book book=new Book();
      book.setAuthor("dfdf");
      book.setPages(12);
      if(book.save())Toast.makeText(MainActivity.this,"yes",Toast.LENGTH_SHORT).show();
      else Toast.makeText(MainActivity.this,"no",Toast.LENGTH_LONG).show();
      </pre>

    同时你也看到了 save()方法是有返回值的。

    增加数据

    其实和新增差不多
    先进行数据赋值,然后对特定条件下的数据进行修改更新。
    代码示例如下:
    <pre>
    ContentValues values = new ContentValues();
    //更新内容
    values.put('author','aaa');
    //设置对应的数据进行更新
    DataSupport.update(Book.class,values,3);
    //这种代码是默认对id=3 的 数据项进行更新,当然不止这种方式进行更新。
    //下面是对应的条件进行更新。。下面用法我就不赘述了,也很简单
    DataSupport.updateAll(Book.class, values, "author = ?", "你好");
    //还有一种方法
    Book book = new Book();
    book.setAuthor("haha")
    updateBook.update(2);
    </pre>

    删除数据

    查询数据

    相关参考

    郭霖大神的数据库相关博客
    http://blog.csdn.net/guolin_blog/article/details/38461239
    简书其他大佬的
    http://www.jianshu.com/p/557682e0a9f0
    还有很多,大家多谷歌。

    总结

    这个开源库虽然使用很简单,但是稍微牺牲了一些性能,所以这个大家平时写项目时候效率很高,但是原生的Sql一定要学。就酱紫。

    相关文章

      网友评论

        本文标题:litepal数据库的简单配置使用

        本文链接:https://www.haomeiwen.com/subject/gzqvqxtx.html