之前也有一篇专门关于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文件。
<?xml version="1.0" encoding="CESU-8" ?>
<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<Song> songs = new ArrayList<Song>();
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<Song> getSongs() {
return songs;
}
public void setSongs(List<Song> songs) {
this.songs = songs;
}
}
在litepal.xml的list中实现:
<mapping class="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<Album> allSongs = DataSupport.findAll(Album.class);
// 条件查询 List<Album> 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中了解