Android LitePal的简单使用

前言

为了丰富这个对于Android SQLite的使用,特别写了这篇文章,也算是做一个笔记吧。
效果图

Android LitePal的简单使用_第1张图片

正文

LitePal是Android中比较轻便的开源数据库框架,是郭霖大神写的,本文只做最简单的使用。

① 创建项目

Android LitePal的简单使用_第2张图片
然后是导入一些依赖库,其中包括LitePal,还有一些是为了方便展示数据的。

② 配置项目

在app下的build.gradle中添加配置

	compileOptions {//指定使用的JDK1.8
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }

    dataBinding {
        enabled = true
    }
	//数据解析
    implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
    //Android SQLite操作框架
    implementation 'org.litepal.guolindev:core:3.1.1'

Android LitePal的简单使用_第3张图片
然后创建assets文件夹,文件夹下面新建一个litepal.xml文件

"1.0" encoding="utf-8"?>

    
    "Demo" />
    
    "1" />

    
    

    

Android LitePal的简单使用_第4张图片
创建DemoApplication
Android LitePal的简单使用_第5张图片
然后在AndroidManifest.xml中指定
Android LitePal的简单使用_第6张图片
现在可以创建数据模型了。

③ 数据配置

Android LitePal的简单使用_第7张图片
这里建了一个model然后里面放数据实体,继承LitePalSupport是为了能够使用增删改查,代码如下:

package com.llw.litepalusedemo.model;

import org.litepal.crud.LitePalSupport;
//区/县
public class Area extends LitePalSupport {
    private int id;//这个id是可以不用的,因为会默认创建一个自增的id
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

然后在litepal.xml中配置
Android LitePal的简单使用_第8张图片

④ 一顿操作

首先改动activity_main.xml布局,在最外侧增加标签,改动后代码如下:

"1.0" encoding="utf-8"?>


    xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

        android:id="@+id/tv_result"
            android:gravity="center"
            android:text="结果"
            android:textColor="#000"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>

        android:gravity="center"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1">
            

然后进入MainActivity,
代码如下:

package com.llw.litepalusedemo;

import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;

import android.os.Bundle;
import android.widget.Toast;

import com.google.gson.Gson;
import com.llw.litepalusedemo.databinding.ActivityMainBinding;
import com.llw.litepalusedemo.model.Area;

import org.litepal.LitePal;

import java.util.List;

public class MainActivity extends AppCompatActivity {
    ActivityMainBinding mb;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //绑定视图
        mb = DataBindingUtil.setContentView(this,R.layout.activity_main);

        mb.btnAdd.setOnClickListener(v -> {//添加数据
            Area area = new Area();
            area.setName("福田");
            area.save();//保存

            if(area.save()){
                showMsg("添加数据成功");
            }else {
                showMsg("添加数据失败");
            }
        });

        mb.btnUpdate.setOnClickListener(v -> {//修改数据


            Area area = new Area();
            area.setName("宝安");
            area.update(1);//修改指定ID的数据

            //area.setName("南山");
            //area.updateAll("name = ?","福田");//修改所有名字为福田的为南山

            showMsg("修改数据成功");

        });

        mb.btnQuery.setOnClickListener(v -> {//查询数据
            //查询指定ID的数据
            //Area area = LitePal.find(Area.class,1);

            //查询所有数据
            List<Area> area = LitePal.findAll(Area.class);
            mb.tvResult.setText(new Gson().toJson(area));

        });

        mb.btnDelete.setOnClickListener(v -> {
            LitePal.delete(Area.class, 1);//删除指定id

            //LitePal.deleteAll(Area.class, "name = ?" , "福田");//删除所有name为福田的
            showMsg("删除数据成功");
        });

    }

    private void showMsg(String msg){
        Toast.makeText(MainActivity.this,msg,Toast.LENGTH_SHORT).show();
    }
}

效果图
Android LitePal的简单使用_第9张图片
OK,写完收工。

你可能感兴趣的:(Android知识点,SQLite使用,Android自带数据库使用,LitePal简单使用,快速操作数据库)