Android数据库LitePal的基本用法详解 【已解决】

LitePal 简介

LitePal 是一款开源的 Android 数据库框架,它采用了对象关系映射(ORM)的模式,将我们平时使用的一些数据库(比如 Sqlite)功能进行了封装。

配置

第一步

gradle注入:

    implementation 'org.litepal.android:core:1.6.1'

这里我的版本是1.6.1的,如果想获得最新版本,请看这里:https://github.com/LitePalFramework/LitePal

第二步

接着需要配置 litepal.xml 文件,在 app/src/main 目录右键 -> New -> Directory , 创建一个 assets 目录,在该目录下新建一个 litepal.xml 文件,编辑内容如下:
Android数据库LitePal的基本用法详解 【已解决】_第1张图片

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <dbname value="person" ></dbname>

    <version value="1" ></version>

    <list>
        <mapping class="com.example.a10212.litepalapp.Person"></mapping>
    </list>
</litepal>

说明: 用于设定数据库的名字,用于设定数据库的版本号,用于设定所有的映射模型

配置LitePalApplication

由于操作数据库时需要用到Context,而我们显然不希望在每个接口中都去传一遍这个参数,那样操作数据库就显得太繁琐了。因此,LitePal使用了一个方法来简化掉Context这个参数,只需要在AndroidManifest.xml中配置一下LitePalApplication,所有的数据库操作就都不用再传Context了。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.a10212.litepalapp">
    <application
        android:name="org.litepal.LitePalApplication"
      ·········
    </application>

</manifest>

如果已经有了Application,需要改变一下Application的继承结构。继承LitePalApplication。但是,有些程序可能会遇到一些更加极端的情况,比如说MyApplication需要继承另外一个AnotherApplication,并且这个AnotherApplication还是在jar包当中的,不能修改它的代码。这种情况应该算是比较少见了,但是如果你遇到了的话也不用急,仍然是有解释方案的。你可以把LitePal的源码下载下来,然后把src目录下的所有代码直接拷贝到你项目的src目录下面,接着打开LitePalApplication类,将它的继承结构改成继承自AnotherApplication,再让MyApplication继承自LitePalApplication,这样所有的Application就都可以在一起正常工作了。

以上配置就完成了。

建表

根据对象关系映射模式的理念,每一张表都应该对应一个模型(Model),也就是说,如果我们想要建一张news表,就应该有一个对应的News模型类。新建一个User类,表中的每一列其实就是对应了模型类中的一个字段,比如表中有id、name、age、gender 类中就也应该有这几个字段。id作为主键

package com.example.a10212.litepalapp;

import org.litepal.crud.DataSupport;

public  class  Person extends DataSupport{
    String name;
    int age;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


}

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

现在只要对数据库有任何操作,user表就会自动被创建。比如获取SQLiteDatabase示例。

  List<Person> persons=DataSupport.findAll(Person.class);

运行结果

1.输入数据

Android数据库LitePal的基本用法详解 【已解决】_第2张图片

2.读出数据

Android数据库LitePal的基本用法详解 【已解决】_第3张图片

3.Sqlite数据库查看

Android数据库LitePal的基本用法详解 【已解决】_第4张图片

你可能感兴趣的:(Android数据库LitePal的基本用法详解 【已解决】)