一、什么是LitePal?
LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发时最常用到的一些数据库功能进行了封装,使得不用编写一行SQL语句就可以完成各种建表、増删改查的操作。
二、如何使用LitePal?
1、使用gradle依赖:
compile 'org.litepal.android:core:1.6.1'
2、创建LitePal的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="demo" />
<version value="1" />
<list>
<mapping class = "com.lenovo.pig.onclasstext.Song"/>
<mapping class = "com.lenovo.pig.onclasstext.Album"/>
</list>
</litepal>
3、在manifest里加上:
android:name="org.litepal.LitePalApplication"
4、新建两个类,都继承DataSupport:
public class Song extends DataSupport{
@Column(nullable = false)
private String name;
private int duration;
@Column(ignore = true)
private String uselessField;
private Album album;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
public String getUselessField() {
return uselessField;
}
public void setUselessField(String uselessField) {
this.uselessField = uselessField;
}
public Album getAlbum() {
return album;
}
public void setAlbum(Album album) {
this.album = album;
}
}
5、在MainActivity中进行增删改查操作:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private EditText albumET;
private Button addAlbumBtn;
private Button modifyAlbumBtn;
private Button delAlbumBtn;
private Button queryAlbumBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// SQLiteDatabase database = LitePal.getDatabase();
albumET = findViewById(R.id.album_et);
addAlbumBtn = findViewById(R.id.add_album_btn);
modifyAlbumBtn = findViewById(R.id.modify_album_btn);
delAlbumBtn = findViewById(R.id.del_album_btn);
queryAlbumBtn = findViewById(R.id.query_album_btn);
queryAlbumBtn.setOnClickListener(this);
albumET.setOnClickListener(this);
addAlbumBtn.setOnClickListener(this);
modifyAlbumBtn.setOnClickListener(this);
delAlbumBtn.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.add_album_btn:
String albumName = albumET.getText().toString();
float price = 109.9f;
Album album = new Album();
album.setName(albumName);
album.getPrice(price);
break;
case R.id.modify_album_btn:
Album album1 = DataSupport.find(Album.class,1);
album1.setName("888");
album1.save();
break;
case R.id.del_album_btn:
// int row = DataSupport.delete(Album.class,1);
// int row = DataSupport.deleteAll(Album.class,"id>?","1");
break;
case R.id.query_album_btn:
// List<Album> albumList = DataSupport.findAll(Album.class);
List<Album> albumList = DataSupport.where("name like ?","a%").find(Album.class);
for (Album a:
albumList){
Log.e("MAIN",a.getName()+"***");
}
break;
}
}
}