使用LitePal实现数据库操作

之前也有一篇专门关于SQlite数据库的增删改查操作的博客,虽然难度不高,但是难道每次使用数据库都要再写一遍,
所要我们需要用到数据库的第三方插件LitePal更简单的来实现我们的数据操作。
LitePal可以减少我们很多的工作量。

那么我们该怎么使用LitePal来实现数据库呢?

1.下载第三方插件和配置条件

首先我们需要先在build.gradle的dependencies中加上下面这句话,实现第三方插件的下载。
    dependencies {compile 'org.litepal.android:core:1.6.1'}
下载完成第三方插件后,我们还需要进行配置litepal.xml文件,在app->src->main中新建assets,
再在assets新建litepal.xml文件。

<litepal>
    <dbname value="demo">
//表名
    dbname>
    <version value="1">
//版本号
    version>
    <list>
    list>
litepal>
配置manifest内容如下:
    android:name="org.litepal.LitePalApplication"
到此litepal的配置就完成了。

2.litepal的具体使用方法

1.创建实体类继承DataSupport ,定义好属性,和generated getters and setters.
   一点:一定要继承DataSupport 。
  例子如下:
package com.example.wang3.newapplication;

import org.litepal.annotation.Column;
import org.litepal.crud.DataSupport;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by wang3 on 2018/4/2.
 */

public class Album extends DataSupport {
    @Column(unique = true, defaultValue = "unknown")
    private String name;

    private float price;

    private byte[] cover;

    private List songs = new ArrayList();

    public String getName() {
        return name;
    }

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

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    public byte[] getCover() {
        return cover;
    }

    public void setCover(byte[] cover) {
        this.cover = cover;
    }

    public List getSongs() {
        return songs;
    }

    public void setSongs(List songs) {
        this.songs = songs;
    }
}
在litepal.xml的list中实现:
"com.example.wang3.newapplication.Album"/>
//com.example.wang3.newapplication包名+Album类名

最后在Activity中直接加入:

 SQLiteDatabase db = LitePal.getDatabase();

实现创建数据库表。到此我们应该已经创建好我们的数据库表了。

3.使用litepal进行增删改查

由于使用第三方插件进行增删改查十分方便,这里就不多赘述,看代码及注释即可:
 public void onClick(View v) {
        switch (v.getId()){
            case R.id.add_btn:
            //插入数据
                String albumName=editText.getText().toString();
                float price=109.9f;
                Album album=new Album();
                album.setName(albumName);
                album.setPrice(price);
                album.save();
                break;
            case R.id.query_btn:
               //  单条查询 Song song = DataSupport.find(Song.class, id);
               //全部查询
                List allSongs = DataSupport.findAll(Album.class);               
                // 条件查询  List songs = DataSupport.where("name like ? and duration < ?", "song%", "200").order("duration").find(Album.class);
                for (Album album1: allSongs) {
                    Log.e("000000000", "" + album1.getName());
                }
                break;

            case R.id.dlete_btn:
            //删除id为1的数据
                DataSupport.delete(Song.class, 1);
                break;

            case R.id.update_btn:
                //更新id为1的数据
                Album albumToUpdate = DataSupport.find(Album.class, 1);
                albumToUpdate.setPrice(20.99f); 
                //按条件更新多条数据
                 //Album albumToUpdate = new Album();
                //albumToUpdate.setPrice(20.99f); 
                //albumToUpdate.updateAll("name = ?", "album");
               // albumToUpdate.save();       
                 break;
        }

    }

更具体的LitePal可以去https://github.com/LitePalFramework/LitePal中了解

你可能感兴趣的:(安卓)