什么是LitePal?
- LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们需要的功能进行了封装。(可以使我们不用重复的创建表)
LitePal的在github源码地址:
1,在dependencies 写入依赖库
dependencies {
compile 'org.litepal.android:core:1.6.1'
}
2,在Project中src下中的main里右击找到Directory,新建assets并在其中建立litepal.xml。
3,在litepal.xml中写入
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="demo" />
<version value="1" />
<list>
//里面放入表
<mapping class="com.example.administrator.litepaltest1.Album"></mapping>
//这里是后面创建的表
</list>
</litepal>
4,在manifest配置LitePalApplication
<manifest>
<application
android:name="org.litepal.LitePalApplication"
...
>
...
</application>
</manifest>
5,创建表时继承DataSupport
package com.example.administrator.litepaltest1;
import org.litepal.annotation.Column;
import org.litepal.crud.DataSupport;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/4/2/002.
*/
public class Album extends DataSupport {//创建表继承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;
}
}
6,可以在MainActivity里对表进行操作
点击按钮实现增删改查。
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.zengbtn://增加
String name=zeng.getText().toString();//将输入的文本变成字符串类型
float price=56.5f;
Album album=new Album();//新建表
album.setName(name);将值赋给文本
album.setPrice(price);
album.save();//结束时save一下
break;
case R.id.cha://查找
Album album1= DataSupport.find(Album.class,1);
album1.setName("qwe");//找到名字为qwe的列
album1.save();
break;
case R.id.delete://删除
// int row=DataSupport.delete(Album.class,1);//删一个
int row=DataSupport.deleteAll(Album.class,"id>?","3");//删除大于三的列
Toast.makeText(this, "你删除了"+row+"行", Toast.LENGTH_SHORT).show();
break;
case R.id.qurry://改
// List<Album> albumList=DataSupport.findAll(Album.class);//改所有
List<Album> albumList=DataSupport.where("name like ? and id>?","q%","7").order("name").find(Album.class);
//改name像(q%)——有q的,并且id>7的
for (Album a://从a开始到整个List结束
albumList
) {
Log.e("Album",a.getName()+"***");
}
//使用foreach查找符合条件的列
break;
}
}