在Android中,SQLiteDatabase是一个很方便的操作数据库方法,但是现在Android环境中有许多人做了许多的开源库,这些开源库能够快速方便的实现我们想要实现的东西,就像LitePal一样
首先在app/build.grade文件中编辑
dependencies{
...
conmpile'org.litepal.android:core:1.5'
..
}
随后创建一个assets目录,创建一个litepal.xml
然后在AndroidManifest.xml中添加代码
android:name="org.litepal.litePalApplication"
LitePal时对象关系映像(ORM)的模式,简单来说,就是将面向对象的语言和面向对象的数据库中建立一种映射关系,也就是说可以用面向对象的思维来操作数据库而不是再用SQLiteOpenHelper繁琐的步骤
创建一个Abc类
public class Abc extends DataSupport {
private int id;
private double price;
private int pages;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
然后在litepal.xml中添加
然后来说说SQLiteOpenHelper的升级数据库机制,每次执行时都会drop掉数据库,然后重新创建,drop数据库的同时,里面的数据也丢失了,而在LitePal中升级数据库只需要修改所需要的内容,然后版本号加一,也就是
添加更新数据只需要,new一个Abc然后调用set就可以
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button createDatabase = (Button) findViewById(R.id.create_database);
createDatabase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Abc abc=new Abc();
abc.setname("litepal");
}
});
}}
删除数据则使用
DataSupport.deleteAll(Abc.class,"name=?","litepal")
查询数据
list abc=DateSupport.findAll(Abc.class);