1.什么是Litepal:
Litepal是一款开源的安卓数据库框架,它采用了对象关系映射的模式,并将我们平时开发最常用到的一些数据库功能进行封装,使得不用编写一行SQL语句就可以完成各种建表和增删改查的操作。
2.配置Litepal
我们需要编辑app/bulid.gradle文件在dependencise闭包中添加一下数据。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
就是最下面两行
最下面的就是创建之后方便我们在浏览器中查询,这是一个工具至于步骤我会在后面介绍
我们首先在项目的assets文件夹中创建一个文件,并将其命名为litepal.xm
然后写入下面的代码
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="demo" />
//定义应用程序的数据库名称。
<version value="3" />
//更新版本号
<list>
<mapping class="com.example.litepal.Album" />
<mapping class="com.example.litepal.Song" />
//这个是你自己的包名自己定义的不是这个
</list>
</litepal>
配置LitePalApplication
< manifest >
< application
android :name = “ com.example.MyOwnApplication ”
...
>
...
</ application >
</ manifest >
或者你自己在创建的应用程序中写入下面的代码
public class MyOwnApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
LitePal.initialize(this);
}
我们要弄完上面的步骤才可以开始下面的数据库的创建
创建两个实体类可以是一个因为可以同时创建多个数据库所以数据库的个数是你自己的类的个数决定的
现在我们就是创建两个类代码在下面
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 class Song extends DataSupport {
@Column(nullable = false)
private String name;
private int duration;
@Column(ignore = true)
private String uselessField;
private Album album;
...
}
至于我们后面要get和set方法就按Alt 加insert然后全选 ,点击generated getters and setters.方法之后他们的set和get 方法就会自动生成
现在就是xml的布局那就不写 我们直接写重点的
之后就是点击事件代码段就是下面的
public void onClick(View view) {
switch (view.getId()){
case R.id.tianjia_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.shanchu_BTN:
//删除数据库里面的数据
// int row = DataSupport.delete(Album.class,2);
//删除里面id 大于4的数据
int row = DataSupport.deleteAll(Album.class,"id>?","4");
Toast.makeText(this, "你删除了"+row+"行数据", Toast.LENGTH_SHORT).show();
break;
case R.id.tihuan_BTN:
Album album1 = DataSupport.find(Album.class,1);
album1.setName("jintianhenhao");
album1.save();
break;
上面就是关于LitePal的使用